快一点。我忽视了一些事情......
我有一个分组表视图,它是从NSDictionary中的数组构建的。每个数组都是表的一部分。当处于编辑模式并且用户点击“删除”时,我呼叫
- (void)removeObject:(MyClass *)myObject
如何确定发送消息的数组[myArray removeObject:myObject]? NSDictionary没有indexOfObject:方法但NSArray却有。我想我可以迭代遍历每个数组寻找所述对象,但这似乎不对。
有人可以滔滔不绝地说出我的大脑吗?!? THX!
答案 0 :(得分:0)
你应该知道哪个tableView发送了消息(因为有问题的方法在该对象的委托中) - 因此你可以在tableView委托的viewDidLoad方法中创建数组,或者另外找出它是哪一个基于委托上下文。
答案 1 :(得分:0)
我没有看到迭代数组的任何明显错误。人们多久会删除一些东西,字典真的大到足以使这成为一个重要的开销吗?
作为参考点,NSArray的indexOfObject:
方法没有做什么比迭代通过查找匹配对象的数组更好。
答案 2 :(得分:0)
您可以实现标准的UITableView协议并使用此方法:
(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle<br> forRowAtIndexPath:(NSIndexPath *)indexPath {
<br><br>//check the section according to your array, if(indexPath.section ==....
<br><br>
if(editingStyle == UITableViewCellEditingStyleDelete) {
<br>
[arrayFoundBefore removeObjectAtIndex:indexPath.row];
<br>
}
<br>}
我认为这是做到这一点的方式,但不确定。任何人都可以澄清吗?