[英]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.