我有一個NSMutableDictionary作爲我的UITableView的數據源。我正在嘗試執行刪除模式並遇到問題。從NSMutableDictionary中刪除對象時出現EXC_BAD_ACCESS錯誤
我正在記錄我試圖刪除的密鑰以及它對應的對象,因爲這個問題似乎可能與我嘗試訪問未分配的內存有關。這裏是我的tableView實現:commitEditionStyle:forRowAtIndexPath:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source.
NSArray * keys = [userList allKeys];
NSNumber *keyToRemove = [keys objectAtIndex:indexPath.row];
NSLog(@"Key to remove: %@",keyToRemove);
NSLog(@"Object at key: %@",[userList objectForKey:keyToRemove]);
[userList removeObjectForKey:keyToRemove];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[keys release];
[keyToRemove release];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
}
}
此方法運行,然後我得到的錯誤。兩條NSLog語句輸出正確的密鑰並且它是相應的值。
有人能告訴我我做錯了什麼嗎?
感謝
哎呀..他們從來沒有分配..我讀過它..只是愚蠢的。謝謝! – Nick
他們正在分配,但不是由你。 – EmilioPelaez
我明白... – Nick