gpt4 book ai didi

ios - Objective-C:为什么我在尝试从 nsmutablearray 中删除对象时遇到异常?

转载 作者:行者123 更新时间:2023-12-01 17:30:46 25 4
gpt4 key购买 nike

我认为我正在尝试做的是非常基本的东西,我有 2 个包含 MyItem 对象的 NSMutableArrays。我想从一个数组中删除该项目并将其添加到另一个数组中,但是在尝试删除它时会引发异常,并且是的,为了节省您的提示,我对基本 OOP 的理解是失败的。我什至根本不处理枚举数组。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
MyItem *item = [self.completedItems objectAtIndex:indexPath.row];

if(![self.toDoItems containsObject: item])
[self.toDoItems addObject: item];

if([self.completedItems containsObject: item])
[self.completedItems removeObject:item];

[self.tableView reloadData]; //reload contents on table view controller
}

这是异常(exception)

[__NSArrayI removeObject:]: 无法识别的选择器发送到实例 0x8d8bba0

这是数组的加载方式。它基本上是字典数组。
@interface ToDoListTableViewController : UITableViewController
@property (strong) NSMutableArray *completedItems;
@property (strong) NSMutableArray *toDoItems;
@end

self.toDoItems = [[NSMutableArray alloc] init]; //initialize array
self.completedItems = [[NSMutableArray alloc] init]; //initialize array

MyItem *newItem = [[MyItem alloc] init];
newItem.text = [item valueForKey:@"text"];
newItem.completed = [[item valueForKey:@"completed"] boolValue];
newItem.date = [item valueForKey:@"date"];

if (newItem.completed) {
[self.completedItems addObject: newItem];
}
else
{
[self.toDoItems addObject: newItem];
}

编辑
也许这段代码以某种方式使目标数组成为不可变数组?
UINavigationController *navigationController = segue.destinationViewController;
CompleteTableViewController *objChild = (CompleteTableViewController *)navigationController.topViewController;

if(objChild != nil){
objChild.completedItems = [self.completedItems copy];
objChild.toDoItems = [self.toDoItems copy];
}

提前感谢您指出我的问题。

最佳答案

正如异常(exception)所指出的 self.completedItemsNSArray ,而不是 NSMutableArray . NSArray没有这种方法removeObject .

更新!有问题代码!

if(objChild != nil){
objChild.completedItems = [self.completedItems copy]; //should be mutableCopy
objChild.toDoItems = [self.toDoItems copy]; //should be mutableCopy
}

关于ios - Objective-C:为什么我在尝试从 nsmutablearray 中删除对象时遇到异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23658922/

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