小型数据库的方法 - iOS

Approach for small database - iOS

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

我有一个由 4 到 5 个 BOOL 变量组成的数据对象,可能有 800 - 1000 个这样的对象需要保留。

我很困惑我该如何编程,我应该选择 sql 数据库还是核心数据,因为显然 NSUserdefaults 不是一个选项。

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

您可以按照@adobels 的建议轻松地将它们存储在 plist 中。您的 Class 会将 BOOL 存储在 NSNumber 中,而您的 class 实现 NSCoding:

- (void)encodeWithCoder:(NSCoder *)coder {
        [coder encodeObject:member1ToStore forKey:@"yourFirstBoolKey"];
}
- (id)initWithCoder:(NSCoder *)coder ...

如果 class 的所有实例都在一个 NSArray(或类似的 Cocoa 集合)中,那么您只需归档和取消归档到一个文件,例如

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

documentation at apple developer and this fine answer