快一点。我忽视了一些事情......

我有一个分组表视图,它是从NSDictionary中的数组构建的。每个数组都是表的一部分。当处于编辑模式并且用户点击“删除”时我打电话给

- (void)removeObject:(MyClass *)myObject 

如何确定发送消息的数组[myArray removeObject:myObject]? NSDictionary没有indexOfObject:方法但NSArray却有。我想我可以迭代遍历每个数组寻找所述对象,但这似乎不对。

有人可以滔滔不绝地说出我的大脑吗?!? THX!

有帮助吗?

解决方案

您可以实现标准的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>}

我认为这是做到这一点的方式,但不确定。任何人都可以澄清吗?

其他提示

你应该知道哪个tableView发送了消息(因为有问题的方法是在该对象的委托中) - 因此你可以在tableView委托的viewDidLoad方法中创建数组,或者找出它是哪一个基于委托上下文。

我没有看到迭代数组的任何明显错误。人们多久会删除一些东西,字典真的大到足以使这成为一个重要的开销吗?

作为一个参考点,NSArray的 indexOfObject:方法没有做什么比迭代通过寻找匹配对象的数组更好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top