从NSmutableArray中删除项目

时间:2011-07-19 07:27:14

标签: iphone objective-c nsmutablearray

我有两个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”数组应保留其对象。

2 个答案:

答案 0 :(得分:1)

如果您只是使用搜索存储阵列分配allstores数组,则搜索到的存储数组中的更改将反映到所有存储中。您需要为所有商店分配新内存,然后根据您的逻辑行为将searchstores数组中的对象添加到它。

答案 1 :(得分:0)

每个阵列都是完全独立的。如果从一个数组中删除对象会影响另一个数组,则不会有两个数组,而只有两个指向同一数组的指针。您需要实例化(alloc / init或mutableCopy)。您也可以随意显示初始化代码。