[英]How can I save Array of Class Objects in to a Plist(Iphone Development)
我有一个问题,涉及将Class对象的数组保存到plist中,然后将其取回。
例如,我有一个带有两个Nsstring和一些int值的类“ A”。
我有一个Class A对象数组。
我如何将这个数组保存到plist中。
我可以将一个简单的数组(字符串数组)存储到Plist中。没有错误。
但是,当我存储此“对象数组”时,它无法完成。
提前致谢。
首先将您的NSArray转换为NSDictionary,如此处所示 。
然后使用NSDictionary的writeToFile:atomically:
将其存储为Plist。
为此,您的类必须符合NSCoding协议。
否则,您可以将NSArray本身直接写入plist,而无需转换为NSDictionary。 但是无论如何,该类应符合NSCoding协议。
您无法将对象保存到Plist。 它永远都行不通,您只能将内部变量保存到plist中。 如果要保存对象,则需要首先使您的类NSCoding兼容。 这是一个很好的链接,解释它http://samsoff.es/posts/archiving-objective-c-objects-with-nscoding但它没有提到对象内的对象,而基本上只是另一层。 您需要确保要保存的对象中的任何对象在整个链中也都符合NSCoding。 然后,您需要使用NSKeyedArchiver来保存它们。 我编写了一个不错的管理器类,只要您的对象符合NSCoding,它就会为您解决所有这些问题。 它可以在这里https://github.com/caranicas/Save-Manager享受!
正确指示类变量的.plist路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"patientList.plist"];
[myPatients writeToFile:path atomically:YES];
使用上面的我希望这会有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.