数组使用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