我有一个数组,我想把它转换为plist。
XYZToDoItem *item1 = [[XYZToDoItem alloc] init];
item1.itemName = @"Buy beer";
item1.completed = YES;
[self.toDoItems addObject:item1];
XYZToDoItem *item2 = [[XYZToDoItem alloc] init];
item2.itemName = @"Buy chicken";
item2.completed = YES;
[self.toDoItems addObject:item2];
如何将其转换为plist?我尝试但得到一个错误。
答案 0 :(得分:1)
简短回答:你不能。
属性列表不能包含XYZToDoItem等自定义对象。它们只能包含相当小的对象类型列表(NSString,NSData,NSDate,NSNumber,NSArray或NSDictionary对象)。
如果要序列化包含自定义对象(如XYZToDoItem)的数组,则应该考虑使对象符合NSCoding。然后,您可以使用NSKeyedArchiver方法archivedDataWithRootObject将数组转换为NSData,或者使用它直接将数据写入磁盘 archiveRootObject:TOFILE: