我有两个nsmutablearrays
array1:searchingStores = [[NSMutableArray alloc] init];
array2:allStores; ///它包含商店信息,它也是 的NSMutableArray
现在,如果我在“searchingStores”数组中添加对象
for (int i= 0; i < [allstores count]; i++){
Franchise *store = [allStores objectAtIndex:i];
if ([store.ZipCode hasPrefix:str]) /// where str is searched string
{
[searchedStores addObject:store]; // some stores information will be inserted in "searchedStores" array
}
}
现在,如果我从searchStores数组中删除对象,它也将从“allStores”数组中删除对象
删除我正在写的对象
[searchedStores removeAllObjects];
如何仅从“searchingStores”数组中删除对象。并且“allStores”数组应保留其对象。
答案 0 :(得分:1)
如果您只是使用搜索存储阵列分配allstores数组,则搜索到的存储数组中的更改将反映到所有存储中。您需要为所有商店分配新内存,然后根据您的逻辑行为将searchstores数组中的对象添加到它。
答案 1 :(得分:0)
每个阵列都是完全独立的。如果从一个数组中删除对象会影响另一个数组,则不会有两个数组,而只有两个指向同一数组的指针。您需要实例化(alloc / init或mutableCopy)。您也可以随意显示初始化代码。