我的目標是能夠更新NSUserDefaults中的對象。從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錯誤的來源... – Apollo 2012-03-17 01:50:39