gpt4 book ai didi

iphone - 动态数组返回 numberOfRowsInSection 中的计数

转载 作者:行者123 更新时间:2023-11-29 04:09:23 28 4
gpt4 key购买 nike

我在从 tableView 中删除行时遇到问题,因为我有多个在 View Controller 出现时动态生成的部分,因此当我返回 numberOfRowsInSection 中的计数时最终看起来像这样:

NSInteger count = [[_sectionsArray objectAtIndex:section] count];
return count;

现在,当删除时,我会生成相同类型的数组,如下所示:

NSMutableArray *contentsOfSection = [[_sectionsArray objectAtIndex:[indexPath section]] mutableCopy];
[contentsOfSection removeObjectAtIndex:[indexPath row]];

如您所见,我正在从未链接到 tableView 的数组中删除对象,因此它只返回 NSInternalInconsistencyException

有人可以帮我解决这个问题吗?

更新:

    [contentsOfSection removeObjectAtIndex:[pathToCell row]];

if ([contentsOfSection count] != 0) {
// THIS DOESN'T
[self.tableView deleteRowsAtIndexPaths:@[pathToCell] withRowAnimation:UITableViewRowAnimationFade];
}
else {
// THIS WORKS!
[_sectionsArray removeObjectAtIndex:[pathToCell section]];
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:[pathToCell section]] withRowAnimation:UITableViewRowAnimationFade];
}

最佳答案

mutableCopy 将创建数组的另一个实例。因此,您将从新创建的数组中删除项目,而不是从旧数组中删除项目。始终将“contentsOfSection”存储为 _sectionsArray 中的可变数组。然后像这样删除。

NSMutableArray *contentsOfSection = [_sectionsArray objectAtIndex:[indexPath section]];
[contentsOfSection removeObjectAtIndex:[pathToCell row]];

if ([contentsOfSection count] != 0) {

[self.tableView deleteRowsAtIndexPaths:@[pathToCell] withRowAnimation:UITableViewRowAnimationFade];
}
else {
// THIS WORKS!
[_sectionsArray removeObjectAtIndex:[pathToCell section]];
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:[pathToCell section]] withRowAnimation:UITableViewRowAnimationFade];
}

关于iphone - 动态数组返回 numberOfRowsInSection 中的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14661689/

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