數組使用NSUserDefaults存儲的問題,


最近在做搜索記錄的時候,由於搜索記錄是存儲在本地的,而且都是字符串,我考慮到數據量也不是太大,於是就懶的使用數據庫了。

 於是就想到了NSUserDefaults 存儲的方式,

但是由於之間對於數組沒有這樣保存過,也沒有考慮太多,就直接:

[[NSUserDefaults standardUserDefaults]setObject:self.searchHistoryDataArr forKey:@"SEARCHHISTORYDATA"];
    [[NSUserDefaults standardUserDefaults]objectForKey:@"SEARCHHISTORYDATA"];
    

self.searchHistoryDataArr,是我數據源,是個可變數組,我每次存儲都要對這個數組進行增刪改茶改查操作,

那么問題就來了,運行項目的時候,是不是的會崩潰,崩潰信息顯示的是 不可變數組不能進行增刪改查的操作。

我一直以為問題出在,增刪改查的方法的位置,所以一直把注意力放在 這幾個方法力找問題。但是無論經過我在這幾個方法的位置強轉類型,還是用新的可變數組操作,都是不好使。偶然的時候發現,  NSUserDefaults 不能多可變數組,或可變字典操作,只能操作不可變的。

最后位置找到 了,那就好解決了,

[NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"SEARCHHISTORYDATA"]];
 [[NSUserDefaults standardUserDefaults] setObject:self.searchHistoryDataArr forKey:@"SEARCHHISTORYDATA"];

這樣就解決了。

還是由於基礎不好的原因,希望能幫助到遇到同樣問題的,😄,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM