为了简单起见,假设我们有以下简单的类接口(interface):
@interface Person : NSObject <NSCoding> {
NSString *firstname;
NSString *lastname;
}
@property (copy) NSString *firstname;
@property (copy) NSString *lastname;
@end
是否可以将此对象序列化为 plist(假设 NSCoding 协议(protocol)已正确实现)?
更新2010年12月31日14:40
我对此有一些后续问题。是否可以让 NSKeyedArchiver
将 plist 导出为 XML?此外,是否可以将 XML 转储到变量而不是文件中?
最佳答案
关于设置输出格式为XML,我建议:
[myKeyedArchiver setOutputFormat: NSPropertyListXMLFormat_v1_0];
至于将其放入变量而不是文件中,我建议使用 initForWritingWithMutableData: 初始化程序创建 NSKeyedArchiver。完成编码后, 确保对其调用 finishEncoding,然后 XML 将位于您在初始化时传入的 NSMutableData 中。
如果您随后需要从中获取 NSString,您可以像这样从 NSMutableData 中获取它:
NSString* xmlString = [[NSString alloc] initWithData: myMutableData encoding: NSUTF8StringEncoding];
这应该可以解决问题。祝你好运!
关于objective-c - 是否可以将自定义对象序列化为 Objective-C 中的 plist 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4570110/