我在我的应用程序中使用了这部分代码,它像预期的那样工作。但现在,它在使用setInteger时崩溃了:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int selEvent = [defaults integerForKey:@"selected_event"];
/*
* Do Something with selEvent
* New ID is in NSNumber event_id
*/
[defaults setInteger:[event_id intValue] forKey:@"selected_event"]; //Crashes on this line
[defaults synchronize];在Xcode 4.5.1和iPad 6.0模拟器中工作。
我要买一台EXC_BAD_ACCESS。
我的问题的原因是什么?
发布于 2014-06-16 17:59:52
我也有同样的问题。我追踪到了其他的东西:
我将整数存储在NSUserDefaults中,代码如下:
[[NSUserDefaults standardUserDefaults] setInteger:_currentBannerIndex forKey:@"currentBannerIndex"];在一段时间后,它在相同的点崩溃,写入相同的值。原因是在这段时间之后,我使用如下代码注册了NSUserdefaults中的更改:
[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(userDefaultsChanged) name:NSUserDefaultsDidChangeNotification object:nil];这是在初始化时在导入器中完成的。在取消分配导入器之后,对用户默认设置的新写入将触发已消失对象的观察者。轰隆隆。撞车。
当然,解决方案是删除我的导入器的dealloc中的观察者。
https://stackoverflow.com/questions/14232023
复制相似问题