2015-11-17 151 views
1

我对内存管理很陌生。我知道我的问题已经在StackOverflow上讨论过了。但我想知道完全理解它的答案。我的问题是:复制时保留计数

NSMutableArray *firstArray = [[NSMutableArray alloc]init]; 
NSMutableArray *secondArray = [[NSMutableArray alloc] init]; 
secondArray = [firstArray copy]; 

什么将保留计数firstArray和第二阵列复制后?

回答

2

各1个。 firstArray持有指向firstArray的指针。当您拨打secondArray = [firstArray copy];时,firstArray的内容将被复制到新的存储位置,并且secondArray将指向该位置。这意味着firstArraysecondArray将指向单独的内存位置(并且是不同的对象),尽管它们具有相同的数据。因此,它们每个的保留计数为1.

+1

并且不要忘记提及原始'secondArray'的保留计数为0,它将被释放。 –