面向小型数据库的iOS方法

面向小型数据库的iOS方法,ios,objective-c,persistence,Ios,Objective C,Persistence,我正在构建一个应用程序,它需要我存储很多东西 我有一个由4到5个BOOL变量组成的数据对象,可能有800到1000个这样的对象,我需要将它们持久化 我不知道应该如何编程,应该使用sql数据库还是核心数据,因为NSUserdefaults显然不是一个选项。1000对象也可以存储在plist中。生成一个包含1000个您类型对象的.plist文件。然后检查应用程序中的性能。如果没有问题,那么你的应用程序将更容易编写。你可以按照@adobels的建议轻松地将它们存储在plist中。您的类将把布尔存储在N

我正在构建一个应用程序,它需要我存储很多东西

我有一个由4到5个BOOL变量组成的数据对象,可能有800到1000个这样的对象,我需要将它们持久化


我不知道应该如何编程,应该使用sql数据库还是核心数据,因为NSUserdefaults显然不是一个选项。

1000对象也可以存储在plist中。生成一个包含1000个您类型对象的.plist文件。然后检查应用程序中的性能。如果没有问题,那么你的应用程序将更容易编写。

你可以按照@adobels的建议轻松地将它们存储在plist中。您的类将把布尔存储在NSNumber中,并且您的类实现NSCoding:

- (void)encodeWithCoder:(NSCoder *)coder {
        [coder encodeObject:member1ToStore forKey:@"yourFirstBoolKey"];
}
- (id)initWithCoder:(NSCoder *)coder ...
如果您的类的所有实例都在一个NSArray(或类似的Cocoa集合)中,那么您只需归档并取消归档到一个文件,如

[NSKeyedArchiver archiveRootObject:yourCollectionOfClasses toFile:archivePath]
[NSKeyedUnarchiver unarchiveObjectWithFile:[[self archiveURL] path]];

请参阅和

我可能无法回答您的问题,但我肯定会添加一些链接,这些链接可能在某种程度上对您有所帮助。您可以检查每个4 Bool的.800个对象,结果正好是400字节的数据,1000个5 Bool的对象仍然小于1 KB。您已经远远超出了数据库和核心数据的能力。布尔变量也将是可编辑的,这太常见了。那么,您的aproach是否是用于我的需求的良好实践呢?请在用户每次进行编辑时保存它。如果这种情况每秒发生一次以上:请仅每秒执行一次。并测量保存所需的时间。@PulkitSharma如果这个答案对您有所帮助,我会恳请您使用左侧的绿色复选标记接受它。或者评论我如何改进答案。