我有一个 NSMutableArray
,我在其中添加目标并存储在用户默认值中,但在添加时崩溃了。
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"bssidObserverArray"]) {
bssidObserverArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"bssidObserverArray"];
}
if (bssidObserverArray.count > 0) {
if (![bssidObserverArray containsObject:vendorID]) {
NSLog(@"bssidObserverArray %@",bssidObserverArray);
// In this line app is getting crashed
[bssidObserverArray addObject:vendorID];
[[NSUserDefaults standardUserDefaults] setObject:bssidObserverArray forKey:@"bssidObserverArray"];
}
}else{
[bssidObserverArray addObject:vendorID];
[[NSUserDefaults standardUserDefaults] setObject:bssidObserverArray forKey:@"bssidObserverArray"];
}
任何建议都会更有帮助。
最佳答案
假设bssidObserverArray
是NSMutable数组,那么问题就在这里。
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"bssidObserverArray"]) {
bssidObserverArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"bssidObserverArray"];
}
因为 NSUserdefaults 返回不可变。你可以这样做
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"bssidObserverArray"]) {
NSArray *someArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"bssidObserverArray"];
bssidObserverArray = [someArray mutableCopy];
}
关于ios - 与 NSUserDefaults 和 NSArray 交互时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57069284/