最近在做搜索記錄的時候,由於搜索記錄是存儲在本地的,而且都是字符串,我考慮到數據量也不是太大,於是就懶的使用數據庫了。
於是就想到了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"];
這樣就解決了。
還是由於基礎不好的原因,希望能幫助到遇到同樣問題的,😄,