簡體   English   中英

如何將類對象數組保存到Plist(iPhone開發)

[英]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,如此處所示

然后使用NSDictionarywriteToFile: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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM