NSUserDefaults 存储可变数组问题
2016-07-13 13:55
253 查看
NSUserDefaults 存储可变数组问题
废话不多说上代码,项目中遇到的问题是:NSMutableArray * arrayLoginNames = [NSMutableArray array];
arrayLoginNames = [[NSUserDefaults standardUserDefaults] mutableArrayValueForKey:KLastLoginNameForAutoSendMsgToKeFu];
这句话取出了数组,可是当对数组添加元素后,进行存储时卡在了下面这句话:
[[NSUserDefaults standardUserDefaults] setObject:arrayLoginNames forKey:KLastLoginNameForAutoSendMsgToKeFu];
把主线程卡主,但是不崩溃,不知道为何,就Google了,stackoverflow给了解答办法,
When you store mutable objects to NSUserDefaults, it stores an immutable copy of it so you can't change it directly like that. You have to get the mutable copy out of defaults, change it, and then set it back, replacing old object
in defaults.
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSMutableArray *mutableArrayCopy = [[prefs objectForKey:@"theArray"] mutableCopy]; [mutableArrayCopy addObject:@"some new value"]; [prefs setObject:mutableArrayCopy forKey:@"theArray"];
[[NSUserDefaults standardUserDefaults] synchronize];
相关文章推荐
- expect实现脚本中ssh密码输入
- CRect
- oracle自定义函数按照某个分隔符拆分字符串
- Lesson 6:分支语句和逻辑运算符
- Android6.0权限管理依赖库的介绍和使用
- java中的volatile关键字
- 欢迎使用CSDN-markdown编辑器
- 关于电压跟随器的初步学习
- 瀑布流的实现方式(原生js+jquery+css3)
- flash中NetConnection与NetStream知识整理
- python问题记录
- Java字符串
- js 继承拷贝
- How To Safely Delete Windows.old Folder In Windows 7
- Hive 入门介绍
- java list去重
- jsmooth compilation failed error null
- iPV6审核被拒App修改
- 给 Linux 系统“减肥”,系统垃圾清理
- CocoaPods 安装详细教程 地址