我終於設法使用NSCoding和plist文件保存我的數據。 但是,解決方案(由各種教程拼湊而成)使用Archiver,因此生成的plist文件是二進制文件。使用Archiver保存Plist數據與創建可讀(xml)文件
我想將數據保存在文本/可讀plist xml文件中(至少出於測試目的),因爲我可以讀取它。
如何更改我的代碼來執行此操作?
我的「encodeWithCoder」和「initWithCoder」方法在我的類名稱中。
我的AppDelegate使用該保存其中 「allMsgs」 是類實例的數組中的數據:
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:allMsgs]; [encodedObject writeToFile:plistPath atomically:YES];
的AppDelegate中使用此來讀取數據:
NSData *codedData = [[NSData alloc] initWithContentsOfFile:plistPath]; if(codedData!=nil){ allMsgs = [NSKeyedUnarchiver unarchiveObjectWithData:codedData]; }
您希望將字典('NSDictionary')保存到磁盤而不是保存'NSData'。 – 2012-02-01 21:36:11
@ sudorm-rf不確定你的意思。你的意思是「allMsgs」必須是Dictionary類型,還是你的意思是「encodedObject」必須是Type Dictionary? – wayneh 2012-02-01 21:38:34
什麼類型的數據具有allMsgs變量? – 2012-02-01 21:39:14