我有一個對象。它只有兩個NSStrings作爲屬性。我需要使用NSKeyedArchiver嗎?
我創建了一個數組來保存這些對象中的幾個。
是否需要使用NSKeyedArchiver將此數組保存到磁盤,或者我可以只使用NSUserDefaults?
我有一個對象。它只有兩個NSStrings作爲屬性。我需要使用NSKeyedArchiver嗎?
我創建了一個數組來保存這些對象中的幾個。
是否需要使用NSKeyedArchiver將此數組保存到磁盤,或者我可以只使用NSUserDefaults?
您只能使用[[NSUserDefaults standardUserDefaults] setObject:myArray forKey:myKey];
進行書寫,並使用[[NSUserDefaults standardUserDefaults] arrayForKey:myKey];
進行閱讀(因爲不需要,因此不需要setArray:forKey:
)。另外,如果你有一個你不想存儲在NSUserDefaults內部的數組,那麼寫入和讀取數組就很容易:-[NSArray writeToFile:atomically:]和+[NSArray arrayWithContentsOfFile:]。 NSDictionary也有相同的方法來輕鬆讀/寫字典。當然你也可以隨意使用NSKeyed(Un)Archiver。
如果您的對象是自定義類,則在將內容放入NSUserDefaults
之前,您需要使用NSKeyedArchiver
。見here。
如果我嘗試這樣做,我會得到一個「嘗試插入非屬性值」錯誤。 – 2010-09-19 11:26:43
@awakeFromNib:你做了什麼?我只是驗證了這個代碼:'NSArray * array = [NSArray arrayWithObjects:@「One」,@「Two」,nil]; \t [[NSUserDefaults standardUserDefaults] setObject:array forKey:@「TestKey」];'它完全按照預期工作。 – DarkDust 2010-09-19 15:29:21