【发布时间】:2012-03-17 01:48:37
【问题描述】:
我的目标是能够更新 NSUserDefaults 中的对象。
这是我的方法,我担心的是,当我使用 removeObjectForKey 替换数组时,是否存在无法创建的内存问题。数组中的对象通过 initWithArray: 保存在 objectArray 中。 oldSavedArray 是包含 NSUserDefaults 先前内容的数组。
objectArray = [[NSMutableArray alloc] initWithArray:oldSavedArray];
if ([objectArray containsObject:myObject]){
// remove the current object
[objectArray removeObject:_currentFood];
// reset our new array of objects
[_defaults removeObjectForKey:@"mySavedData"];
[_defaults setObject:[NSKeyedArchiver archivedDataWithRootObject:objectArray] forKey:@"mySavedData"];
}
else{
// add the current object
[objectArray addObject:_currentFood];
// reset our new array of favorite food
[_defaults removeObjectForKey:@"mySavedData"];
[_defaults setObject:[NSKeyedArchiver archivedDataWithRootObject:objectArray] forKey:@"mySaveData"];
}
【问题讨论】:
-
我认为这是我的 EXC_BAD_ACCESS 错误的根源......
标签: iphone objective-c ios xcode