我有一个简单的问题,我正在寻找最有效的方法来解决这个问题。
我有一个主表(比如mainTableView),它的搜索栏由searchResultsTableView控制。
我的主表有一个可变数组,比如说10个项目的mainItems。
执行搜索时,searchResultsTableView可能包含不同可变数组中的3个项目,如searchItems
现在在那个搜索控制器中我删除了3个项目中的2个,我也从searchItems和searchResultsTableView中删除了。这些是一次删除1。
因此,当我从searchingItems中删除时,我还需要从mainItems中删除以保持同步,但是对于mainItems中的每个删除索引都会不断变化,那么我如何知道要在mainItems中删除的原始索引?
我应该寻找一些基于字典的方法而不是数组吗?
答案 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];
}