NSUserDefaults 存储可变数组问题
2015-10-14 21:24
288 查看
废话不多说上代码,项目中遇到的问题是:
NSMutableArray*arrayLoginNames=[NSMutableArrayarray];
arrayLoginNames=[[NSUserDefaultsstandardUserDefaults]mutableArrayValueForKey:KLastLoginNameForAutoSendMsgToKeFu];
这句话取出了数组,可是当对数组添加元素后,进行存储时卡在了下面这句话:
[[NSUserDefaultsstandardUserDefaults]setObject:arrayLoginNamesforKey:KLastLoginNameForAutoSendMsgToKeFu];
把主线程卡主,但是不崩溃,不知道为何,就Google了,stackoverflow给了解答办法,
WhenyoustoremutableobjectstoNSUserDefaults,itstoresanimmutablecopyofitsoyoucan'tchangeitdirectlylikethat.Youhavetogetthemutablecopyoutofdefaults,changeit,andthensetitback,replacingoldobjectindefaults.
[[NSUserDefaultsstandardUserDefaults]synchronize];
NSMutableArray*arrayLoginNames=[NSMutableArrayarray];
arrayLoginNames=[[NSUserDefaultsstandardUserDefaults]mutableArrayValueForKey:KLastLoginNameForAutoSendMsgToKeFu];
这句话取出了数组,可是当对数组添加元素后,进行存储时卡在了下面这句话:
[[NSUserDefaultsstandardUserDefaults]setObject:arrayLoginNamesforKey:KLastLoginNameForAutoSendMsgToKeFu];
把主线程卡主,但是不崩溃,不知道为何,就Google了,stackoverflow给了解答办法,
WhenyoustoremutableobjectstoNSUserDefaults,itstoresanimmutablecopyofitsoyoucan'tchangeitdirectlylikethat.Youhavetogetthemutablecopyoutofdefaults,changeit,andthensetitback,replacingoldobjectindefaults.
NSUserDefaults*prefs=[NSUserDefaultsstandardUserDefaults]; NSMutableArray*mutableArrayCopy=[[prefsobjectForKey:@"theArray"]mutableCopy]; [mutableArrayCopyaddObject:@"somenewvalue"]; [prefssetObject:mutableArrayCopyforKey:@"theArray"];
[[NSUserDefaultsstandardUserDefaults]synchronize];
相关文章推荐
- UVALive 4260 Fortune Card Game (Regionals 2008 Asia Taipei +DP)
- PostgreSQL & Oracle - 2 OLTP "update/select based primary key" & insert
- vi/vim 常用命令
- iOS地图 MapKit框架
- html和xml解析
- BZOJ 1978: [BeiJing2010]取数游戏 game( dp )
- 网络原理,以及虚拟机相关配置
- PostgreSQL & Oracle -1 OLTP "update/select based primary key" & insert
- 影像去条带
- 面试小结一:关于操作系统的面试题整理
- Floyd传递闭包-POJ-3660-Cow Contest
- [Python]模拟键盘同时按下几个按键
- 最短路径练习-POJ 1860 Currency Exchange
- 【codevs3269】混合背包 背包DP裸题
- Core Location
- android EditText设置
- Adapter中观察者模式的应用
- linux----定义命令别名
- java中三个点的用法
- 文章标题