复制时保留计数
问题描述:
我对内存管理很陌生。我知道我的问题已经在*上讨论过了。但我想知道完全理解它的答案。我的问题是:复制时保留计数
NSMutableArray *firstArray = [[NSMutableArray alloc]init];
NSMutableArray *secondArray = [[NSMutableArray alloc] init];
secondArray = [firstArray copy];
什么将保留计数firstArray和第二阵列复制后?
答
各1个。 firstArray
持有指向firstArray
的指针。当您拨打secondArray = [firstArray copy];
时,firstArray
的内容将被复制到新的存储位置,并且secondArray
将指向该位置。这意味着firstArray
和secondArray
将指向单独的内存位置(并且是不同的对象),尽管它们具有相同的数据。因此,它们每个的保留计数为1.
并且不要忘记提及原始'secondArray'的保留计数为0,它将被释放。 –