Uitableview 删除searchResultsTableView和mainTableView之间的同步

Uitableview 删除searchResultsTableView和mainTableView之间的同步,uitableview,uisearchbar,Uitableview,Uisearchbar,我有一个简单的问题,我正在寻找最有效的方法来解决这个问题 我有一个主表(比如mainTableView),它有一个由searchResultsTableView控制的搜索栏 我的主表有一个可变数组,比如说mainItems,或者说10个items 执行搜索时,searchResultsTableView可能包含不同可变数组中的3个项,例如searchedItems 现在,在那个搜索控制器中,我删除了3个项目中的2个,并且还从searchedItems和searchResultsTableView

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

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

我的主表有一个可变数组,比如说mainItems,或者说10个items

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

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

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


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

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

如果从
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];
}
int indexToDelete=-1;

对于(i=0;这将起作用,但我确信这是最不有效的方法之一。然后我认为,您可以按照建议使用字典,只需从searchItems和mainItems中删除相同的键。应该可以!