假设我创建了一个自定义类来保存一个NSMutableDictionary数组。
@interface CustomStore : NSObject
{
NSMutableArray *allDictionary;
}
我可以使用 archiveRootObject:toFile 来保存列表吗?
如果我想从字典中检索自定义类怎么办。我需要在自定义类中确认 encodeObject:forKey: 吗?
假设我创建了一个自定义类来保存一个NSMutableDictionary数组。
@interface CustomStore : NSObject
{
NSMutableArray *allDictionary;
}
我可以使用 archiveRootObject:toFile 来保存列表吗?
如果我想从字典中检索自定义类怎么办。我需要在自定义类中确认 encodeObject:forKey: 吗?
是的,是的。这是一个不错的教程: http ://cocoadevcentral.com/articles/000084.php
您的自定义类需要遵守 NSCoding 协议。就像实现 initWithCoder: 和 encodeWithCoder: 一样简单。一旦你的自定义类实现了 NSCoding 协议,你就可以开始了。
通过使用 NSKeyArchiver,要存储的对象必须通过 NSCoding 确认实现。
@interface YouClassName : NSObject <NSCoding>
并实施
- (id)initWithCoder:(NSCoder *)aDecoder;
- (void)encodeWithCoder:(NSCoder *)aCoder;
因此,在您的自定义类实现上述功能后,就可以将它们成功保存在列表中。