0

我有一个简单的问题,我正在寻找最有效的方法来处理这个问题。

我有一个主表(比如 mainTableView),它有由 searchResultsTableView 控制的搜索栏。

我的主表有一个可变数组说 mainItems 说 10 个项目。

执行搜索时,searchResultsTableView 可能包含不同可变数组中的 3 个项目,比如 searchedItems

现在在那个搜索控制器中,我删除了 3 个项目中的 2 个,并且还从 searchedItems 和 searchResultsTableView 中删除。这些是一次删除 1 个。

因此,当我从 searchedItems 中删除时,我还需要从 mainItems 中删除以保持同步,但索引会随着 mainItems 中的每次删除而不断变化,那么我如何知道要在 mainItems 中删除的原始索引?

我应该寻找一些基于字典的方法而不是数组吗?

4

1 回答 1

0

你不能比较数组中的对象并使用索引删除。

像这样说,如果删除的项目searchedItemsdeletedObj

int indexToDelete = -1;
for(i=0; i<[mainItems length]; i++){
   Object * myMainObj = mainItems[i];
   if (myMainObj isEqual:deletedObj) //this will work depends on the object inside your datasource
   {
      indexToDelete = i;
      break;
   }
}
if(indexToDelete != -1){
   [mainItems removeObjectAtIndex:indexToDelete];
}
于 2013-08-27T01:35:19.937 回答