2012-08-29 59 views
0

我需要存儲表中的一些對象。 它不會超過100個對象。 是不是像NSUserDefaults中的數組一樣存儲它的好方法?或者有更好的辦法嗎?在UserDefaults中存儲自定義數據是否好方法?

+1

什麼樣的對象?雖然NSUserDefaults可以處理它,但我認爲如果您要存儲多達100個對象,將信息存儲在plist中會是一種更清晰的方法。 – Jeremy1026

+0

另外,這些對象又是如何相互關聯的呢?如果您嘗試保存對象圖,則可以將其序列化,保存,然後在應用程序再次啓動時將其解除封存。 – FluffulousChimp

+0

傑里米,你能告訴我更多關於plist存儲的信息嗎? –

回答

3

雖然你可以存儲這是NSUserDefaults使用[[NSUserDefaults standardUserDefaults] arrayForKey:@"key"];你可能不應該。默認設計用來存儲非常小的數據量,比如用戶偏好(因此名稱)。如果您希望存儲比此更多的數據,那麼您可能需要查看.plists,NSDocumentDirectory,Core-DataSQLite數據庫。

2

更好的方法是使用NSArray的s writeToFile:atomically:writeToURL:atomically:將其作爲磁盤上的二進制斑點序列化。 NSUserDefaults不作爲二進制存儲,因此在加載時需要額外的解析時間,並且需要額外的時間寫入磁盤。 NSUserDefaults也不是用來保存大量數據,而是用於一小組設置數據。

+0

其intresting ..以及如何閱讀它? –

+0

@EvgeniyS如果你想看一下'NSArray'文檔,你會發現有兩個init方法可以從文件'initWithContentsOfFile:','initWithContentsOfURL:'中讀取以及兩個方便的方法:'arrayWithContentsOfFile:','arrayWithContentsOfURL :' – JustSid

+0

呃..對不起,當然a應該在文檔中查看.. Thx爲您的答案。我會閱讀更多關於和之後,我會接受你的或第一個答案.. :) –

-2

否在NSUserDefaults上存儲數據並不好,因爲它會導致嚴重的黑客行爲。

代替它,您可以使用AppDelegate來全局存儲數據。

+2

誰說數據是敏感的?我也沒有看到'AppDelegate'如何幫助保存數據。 – JustSid

+0

您可以存儲數據,直到旅遊應用程序不被關閉。但如果你想按它,你可以使用plist。 – freelancer

+0

AppDelegate是全球「管理」數據的好地方,但它不會在啓動之間存儲數據。 – Jeremy1026

0

將所有自定義數據存儲在NSDictionary或NSArray中。

現在保存字典或數組中的文檔目錄自定義數據遵循this鏈接

+0

它不是什麼我問的問題..你說如何管理應用程序中的數據,但我問如何緩存數據更好的方式..對於你更好地定義自定義對象.. –

+0

檢查編輯anser –

+0

Thx的鏈接,JustSid說一樣。我想我會這樣做.. –

相關問題