我有一個問題涉及將一個Class對象的數組保存到plist然後重新找回它。如何將Class對象的數組保存到Plist中(Iphone開發)
例如我有一個類「A」與兩個NSString和一些int值。我有一個A類對象數組。
如何將這個數組保存到plist中。
我可以完成一個簡單的數組(Array of Strings)存儲到Plist.There沒有錯誤。
但是,當我存儲這個「對象數組」它不能完成。
在此先感謝。
我有一個問題涉及將一個Class對象的數組保存到plist然後重新找回它。如何將Class對象的數組保存到Plist中(Iphone開發)
例如我有一個類「A」與兩個NSString和一些int值。我有一個A類對象數組。
如何將這個數組保存到plist中。
我可以完成一個簡單的數組(Array of Strings)存儲到Plist.There沒有錯誤。
但是,當我存儲這個「對象數組」它不能完成。
在此先感謝。
指明的.plist路徑類變量正確
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"patientList.plist"];
[myPatients writeToFile:path atomically:YES];
使用上面我希望這西港島線是有用
首先轉換您的NSArray到NSDictionary中給出here。
然後使用NSDictionary的writeToFile:atomically:
將其存儲爲Plist。
爲此,您的課程必須符合NSCoding協議。或者,您可以直接將您的NSArray本身寫入plist,而無需轉換爲NSDictionary。但無論如何,該類應符合NSCoding協議。
你不能將對象保存到Plists。它永遠不會工作,你只能將內部變量保存到plist。你想要保存對象,你需要首先使你的類NSCoding兼容。這是一個很好的鏈接解釋它http://samsoff.es/posts/archiving-objective-c-objects-with-nscoding但它沒有提及對象內的對象,但它基本上只是另一個級別。您需要確保您所保存的對象內的任何對象都符合NSCoding標準,一直沿着該鏈條。然後你需要使用NSKeyedArchiver來保存它們。我寫了一個很好的管理類,只要您的對象符合NSCoding,就會爲您處理所有這些問題。其可用權在這裏https://github.com/caranicas/Save-Manager享受!
謝謝Gomathi。 Di你有任何與此相關的工作代碼 謝謝 – HCharli
[link](http://www.icodeblog.com/2009/08/26/objective-c-tutorial-nsarray/)會幫到你我猜。 – Ilanchezhian