是否可以在Objective-C中将自定义对象序列化为plist文件?

为简单起见,我们假设我们有以下简单的类接口:

@interface Person : NSObject <NSCoding> {
  NSString *firstname;
  NSString *lastname;
}

@property (copy) NSString *firstname;
@property (copy) NSString *lastname;

@end

是否可以将此对象序列化为plist(假设NSCoding协议正确实现)?

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];

这应该够了吧.祝好运!

点赞