我目前在服务器上使用mysql数据库,在我的应用程序中使用本地sqlite。我在本地数据库中面临很多问题。有时数据库锁定,无法更新等。
除了Core数据和Sqlite还有其他选项可以在Mac应用程序中本地存储数据吗?
答案 0 :(得分:3)
用一个数据库替换另一个数据库不太可能解决锁定问题。 SQLite和CoreData(通常使用SQLite)是许多(如果不是大多数)Mac应用程序使用的可靠技术。
如果没有关于您遇到的锁的更多信息,我建议您更有可能错误地使用数据库。您是否尝试从多线程访问数据库?你正确地结束准备好的陈述吗?
答案 1 :(得分:2)
您可以继续使用核心数据,但使用不同的存储后端,例如二进制存储后端(一般来说,锁定和事务安全问题应该更少)。有关不同类型的持久存储协调员,请参阅Core Data Programming Guide。
关于Stephen Darlington's Answer:我不太同意。根据SQLite中的并发控制(很可能是乐观并发控制),事务可能会中止,因为它会修改当前“正在使用”的数据。这可能发生在甚至单个关系的数据库的粒度上。在这种情况下,使用像二元商店这样的“交易安全性较低”的后端可能已经足够了。这会给您带来管理一致性的负担,但如果您确定您的交易没有冲突,那么您应该没问题。
答案 2 :(得分:0)
我会说核心数据是最好的。你为什么不用这个? 您还可以使用XML保存内容。保存一些小东西非常方便。 你可以保存一个例如:
[dict writeToFile:@"YOUR_PATH" atomically:NO];
您可以通过实施:
再次获取字典NSDicionary* dict = [NSDictionary dictionaryWithContentsOfFile:@"YOUR_PATH"];