gpt4 book ai didi

objective-c - 从 NSMutableDictionary 中删除对象时出现 EXC_BAD_ACCESS 错误

转载 作者:行者123 更新时间:2023-11-28 19:23:31 25 4
gpt4 key购买 nike

我有一个 NSMutableDictionary 作为我的 UITableView 的数据源。我正在尝试实现删除模式并遇到问题。

我正在记录我试图删除的 key 以及它对应的对象,因为这个问题似乎与我试图访问未分配的内存或其他东西有关。这是我对 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 语句输出正确的键及其对应的值。

谁能告诉我我做错了什么?

谢谢

最佳答案

您不拥有keyskeysToRemove,因此您不应该释放它们。我强烈建议阅读 Cocoa memory management rules .

关于objective-c - 从 NSMutableDictionary 中删除对象时出现 EXC_BAD_ACCESS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6543469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com