NSPropertyListSerialization返回nil而不是序列化数据

时间:2014-12-12 01:40:22

标签: ios objective-c serialization

我将两个NSMutableArray对象放入NSDictionary并尝试序列化,但方法调用返回nil。一个数组addressesNSString个对象的数组。另一个,engines是一个对象数组,每个对象包含几种数据类型。我正在尝试使用以下代码进行序列化:

NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:engAddr forKey:@"engAddr"];
[dictionary setObject:trainList forKey:@"engines"];
NSData *data = [NSPropertyListSerialization dataFromPropertyList:dictionary
                                                          format:NSPropertyListXMLFormat_v1_0
                                                errorDescription:&error];

单步执行,调试器显示数组已正确添加到字典中,但在应该序列化字典的行之后显示data = (NSData *) nil

我哪里错了?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

引擎包含哪些对象?
Plist仅支持下面的特定对象。

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/PropertyLists/AboutPropertyLists/AboutPropertyLists.html#//apple_ref/doc/uid/10000048i-CH3-54303

如果要序列化自定义对象,请通过NSKeyedArchiver将其转换为NSData 为此,对象必须符合NSCoding协议。