我有一个 NSMutableArray,它包含 Person (NSString,NSString,int) 类型的对象 我正在寻找一种简单的方法将此阵列保存到光盘并稍后再次加载它。
我读了很多关于序列化的文章,但我从来没有这样做过。也许这对我来说毕竟不是最简单的方法。
最佳答案
第一步是让你的 Person 类实现 NSCoding 协议(protocol)。基本策略是实现两种方法来序列化和反序列化您希望在 session 之间保留的每个对象实例变量。
#pragma mark NSCoding Protocol
- (void)encodeWithCoder:(NSCoder *)encoder;
{
[encoder encodeObject:[self foo] forKey:@"foo"];
[encoder encodeDouble:[self bar] forKey:@"bar"];
}
- (id)initWithCoder:(NSCoder *)decoder;
{
if ( ![super init] )
return nil;
[self setFoo:[decoder decodeObjectForKey:@"foo"]];
[self setBar:[decoder decodeDoubleForKey:@"bar"]];
return self;
}
要将对象实际写入磁盘,您可以使用 NSArray 的 writeToFile:
方法,或者如果您想更明确地了解它是如何完成的,则可以使用 NSKeyedUnarchiver 类。在这两种情况下,如果您想在数据文件中包含其他项目(例如文件格式编号),您还可以将数组放入另一个数据结构(例如字典)。
关于objective-c - 将 NSMutableArray 保存到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/819671/