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

这样就解决了。

还是由于基础不好的原因,希望能帮助到遇到同样问题的,😄,

posted @ 2016-11-28 21:49  新司机上路  阅读(4862)  评论(0编辑  收藏  举报
本人qq1365102044,有问题欢迎沟通!