我有一个问题涉及将一组Class对象保存到plist然后将其取回。
例如,我有一个带有两个Nsstring和一些int值的类“A”。
我有一组A类对象。
如何将此数组保存到plist中。
我可以完成将一个简单的数组(字符串数组)存储到Plist中。没有错误。
但是当我存储这个“对象阵列”时,它无法完成。
先谢谢。
答案 0 :(得分:4)
首先将NSArray转换为给定here的NSDictionary。
然后使用NSDictionary的writeToFile:atomically:
将其存储为Plist。
为此,您的班级必须符合NSCoding协议。
或者,您可以将NSArray本身直接写入plist而不转换为NSDictionary。但无论如何,该类应该符合NSCoding协议。
答案 1 :(得分:1)
正确指出类变量的.plist路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"patientList.plist"];
[myPatients writeToFile:path atomically:YES];
使用以上内容我希望这将是有用的
答案 2 :(得分:1)
您无法将对象保存到Plists。它永远不会工作,你只能将内部变量保存到plist。要保存对象,首先需要使您的类符合NSCoding。这是解释它的一个很好的链接http://samsoff.es/posts/archiving-objective-c-objects-with-nscoding但是它没有提到对象中的对象,但它基本上只是另一个层次。您需要确保所保存的对象中的任何对象都符合NSCoding标准,一直到链。然后你需要使用NSKeyedArchiver来保存它们。我写了一个很好的经理类,只要您的对象符合NSCoding,它就会为您完成所有这些工作。它可以在这里https://github.com/caranicas/Save-Manager享受!