Cha*_*arl 3 xcode objective-c saving-data nscoder ios
我有一个mainObjectArray(NSMutableArray),它填充了自定义类的实例.每个实例本身都是一个数组,每个数组中的对象是NSDates,NSStrings,BOOL以及包含类似对象的更多数组.
我无法确定的是,是否有可能在内部
- (void)encodeWithCoder:(NSCoder *)encoder
Run Code Online (Sandbox Code Playgroud)
方法,只是说这样的话:
[encoder encodeWithObject:mainObjectArray];
Run Code Online (Sandbox Code Playgroud)
或者必须分别编码每个实例中的每个对象?这会有点痛苦......
非常感谢您的帮助.
只需在自定义类中实现编码和解码方法即可.那样做.一些样本,
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:[NSNumber numberWithInt:pageNumber] forKey:@"pageNumber"];
[encoder encodeObject:path forKey:@"path"];
[encoder encodeObject:array forKey:@"array"];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super init])
{
self.pageNumber = [[aDecoder decodeObjectForKey:@"pageNumber"] intValue];
self.path = [aDecoder decodeObjectForKey:@"path"];
self.array = [aDecoder decodeObjectForKey:@"array"];
}
}
Run Code Online (Sandbox Code Playgroud)
您可以看到三种数据类型被编码和解码 - int,string,array.
希望这可以帮助.