当我尝试将NSData转换为NSArray时,数组为空。我知道数据不是零,因为我NSLog了它。这是代码:
NSData *arrayData = [NSData dataWithData:folderOpened.arrayOfItems];
NSArray *array = [NSArray arrayWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:arrayData]];
NSLog(@"%d",arrayData.length);
NSLog(@"array count:%d",array.count);
我的NSLog:
285
array count:0
我的对象NSCoding协议:
-(void)encodeWithCoder:(NSCoder *)aCoder
{
}
-(id)initWithCoder:(NSCoder *)aDecoder
{
return nil;
}
答案 0 :(得分:2)
使您的自定义对象符合NSCoding,以使它们与NSKeyedArchiver / Unarchiver一起使用。 这是一个很好的起点:http://nshipster.com/nscoding/