Ama*_*mar 2 xcode nsuserdefaults saving-data ios5
我使用NSUserDefaults方法来保存数据.我保存了一个int和一个NSMutableArray.
当应用程序终止,进入后台或切换到另一个视图时,int会得到正确保存.当应用程序进入后台并且切换到另一个视图时,数组会保存,但每次退出模拟器并返回时都不会保存,即使我使用与int和NSMutableArray完全相同的代码.
这是我定义NSMutableArray的代码:
array = [[NSMutableArray alloc] init];
if ([prefs objectForKey:@"array"] != nil) {
array = [prefs objectForKey:@"array"];
}
Run Code Online (Sandbox Code Playgroud)
然后进行编辑和保存:
[array addObject:anObject];
[prefs setObject:array forKey:@"array"];
[prefs synchronize];
Run Code Online (Sandbox Code Playgroud)
除了数组和int部分之间的更改之外,int具有完全相同的代码.
谁能告诉我什么是错的?我查了很多相关的问题,但没有一个能解决我的问题.
提前致谢.
小智 6
"即使你将一个可变对象设置为值,NSUserDefaults返回的值也是不可变的."
您正在为指向NSMutableArray的指针返回一个指向不可变NSArray[NSUserDefaults objectForKey:...]的指针.然后使用NSArray(没有效果)并保存未更改的NSArray.addObject:
(因为每次都要分配NSImmutableArray,所以也可能有内存泄漏.)
| 归档时间: |
|
| 查看次数: |
1836 次 |
| 最近记录: |