這可能是一個天真的問題 - 但我想仔細檢查,以避免浪費時間UIDocument
,如果它不做我想要的。NSCoder + Uidocument:它們是否兼容?
背景:我有,我已經創建了一個簡單的文件系統到用戶創建的文檔保存了爲plists
的應用程序。我有我的編碼/解碼所有工作。我正在使用一些基本類型,並使用適當的編碼器方法來處理它。我有一個命名系統,並將plists保存到Library
目錄中的自定義目錄,因爲這些是用戶不應直接訪問的文檔。 (他們可以將他們的數據導出到文件目錄,如果他們選擇這樣做
我開始思考「自動保存」,然後發現UIDocument
- 。看起來很偉大
所以,鑑於上述情況,它看起來像我可以使用UIDocument
?我保存的是一個從NSObject派生的自定義類「Project」實例,它包含一堆包含自定義類,NSDictionaries等實例的NSMutable數組。現在我要通過這個UIDocument教程:http://www.raywenderlich.com/6015/beginning-icloud-in-ios-5-tutorial-part-1, t想發現它不會因爲我的數據等而起作用。
Upda te:(對於那些在家中閱讀...... ;-)取得了一些進展。
UIDocument使用
(錯誤 - 請參閱下面的答案)但編碼方法名稱相同,因此很容易調整我已有的內容。 已經能夠儲存一個看起來像捕獲所有數據的plist,但是直到我嘗試將其全部讀回來時纔會知道。獲取我沒有整理出的錯誤:NSKeyedArchiver
而不是
NSCoder
NSFileCoordinator:發出令人驚訝的服務器錯誤信號。詳細信息:連接無效
因爲我在本地保存不清楚爲什麼它試圖連接到iCloud。希望我能把它關掉。
在此處的代碼如下:http://stackoverflow.com/questions/8479198/icloud-how-to-save-archive-containing-array-of-custom-objects - 沒有找到許多其他使用示例複雜的數據與UIDocument – 2012-03-31 01:44:07
關鍵是所有的UIDocument關心的是獲得一個NSData - 它不關心數據中的內容或它到達那裏。您之前使用NSCoder製作NSData,因此您可以使用與UIDocument相同的數據。 (並不意味着你不會看到UIDocument的其他問題,但至少它們不會與你的模型設計有關。發佈一些細節/代碼,我們可以幫助診斷。) – rickster 2012-03-31 02:04:14
酷 - 感謝您的澄清。我現在正在粗暴地工作。現在再提出一個問題@我並沒有在腦海中設計一個「文檔」模型的課程,所以我有一些修改要做。對NSFileCoordinator的任何想法:一個令人驚訝的服務器錯誤信號。詳細信息:連接無效的錯誤? – 2012-03-31 07:18:46