我有一个NSMutable数组,我在其中添加目标并存储在用户默认值中,但添加时会崩溃。
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"];
}
任何建议都会更有帮助。
答案 0 :(得分:0)
假设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];
}