如何在它的正确结构中创建plist

时间:2014-11-12 21:10:24

标签: ios objective-c arrays plist

我有一个数组,我想把它转换为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?我尝试但得到一个错误。

1 个答案:

答案 0 :(得分:1)

简短回答:你不能。

属性列表不能包含XYZToDoItem等自定义对象。它们只能包含相当小的对象类型列表(NSString,NSData,NSDate,NSNumber,NSArray或NSDictionary对象)。

如果要序列化包含自定义对象(如XYZToDoItem)的数组,则应该考虑使对象符合NSCoding。然后,您可以使用NSKeyedArchiver方法archivedDataWithRootObject将数组转换为NSData,或者使用它直接将数据写入磁盘 archiveRootObject:TOFILE: