删除searchResultsTableView和mainTableView之间的同步

时间:2013-08-27 00:11:25

标签: uitableview uisearchbar

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

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

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

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

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

因此,当我从searchingItems中删除时,我还需要从mainItems中删除以保持同步,但是对于mainItems中的每个删除索引都会不断变化,那么我如何知道要在mainItems中删除的原始索引?

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

1 个答案:

答案 0 :(得分:0)

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

如果从searchedItems删除的项目为deletedObj

,请这样说
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];
}