localArray = [[APPDELEGATE dicGlobalCat] valueForKey:@"array"];
//ViewDidload
// get array list from appdelegate Dictionary to local array
-(void)btnCloseCategory:(UIButton *) button
{
int index = (int)button.tag;
[localArray removeObjectAtIndex:index];
//here i'm remove object only from local array.
[tbl reloadData];
}
//仅从本地数组中删除对象,它还从appdelegate Dictionary中删除对象。怎么可能?
答案 0 :(得分:1)
当您撰写localArray = [[APPDELEGATE dicGlobalCat] valueForKey:@"array"]
时,localArray
指向[[APPDELEGATE dicGlobalCat] valueForKey:@"array"]
的地址。
这意味着它们指向同一个对象
因此,当您从数组中删除对象时,它们都会受到影响。
要解决此问题,请先创建[[APPDELEGATE dicGlobalCat] valueForKey:@"array"]
的副本,然后再将其分配给loadArray
。
localArray = [[[APPDELEGATE dicGlobalCat] valueForKey:@"array"] mutableCopy];