数组使用NSUserDefaults存储的问题,
Posted 佛系码农
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组使用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"];
这样就解决了。
还是由于基础不好的原因,希望能帮助到遇到同样问题的,??,
以上是关于数组使用NSUserDefaults存储的问题,的主要内容,如果未能解决你的问题,请参考以下文章
(Swift) 将数组存储和检索到 NSUserDefaults
如何使用 NSUserDefaults 在 Swift 中存储自定义类数组?