您可以使用 JSON 或 PLISt 进行通信,尽管根据苹果公司的说法,二进制 plist 在手机端要快得多。
从二进制 Plist 创建字典相对简单:
NSPropertyListFormat format;
NSDictionary *myDictionary = [NSPropertyListSerialization
propertyListFromData:data mutabilityOption:NSPropertyListMutableContainers
format:&format errorDescription:&errorString];
从 JSON 创建它只需要使用现成的 JSON 库之一。一旦你有了字典,保存它:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *file = [NSString stringWithFormat: @"%@%@.plist", [paths objectAtIndex:0], @"MyPlistBaseName"];
[plist writeToFile: file atomically:NO];
稍后重新加载:
NSDictionary *plist = [[[NSDictionary alloc] initWithContentsOfFile: file] autorelease];
但是,如果您将对该数据的访问封装在一个单例中,那么如果速度/内存成为问题,您可能会担心优化实现。只需将该 signleton 视为数据的“所有者”,使用count
, getGroup(0)
(返回 25 块)等方法。然后您可以隐藏对象内的所有实现细节。