复制时保留计数

时间:2015-11-17 14:16:44

标签: ios memory-management copy retaincount

我对内存管理很安静。我知道我的问题已在StackOverflow上讨论过了。但我想知道完全理解它的答案。我的问题是:

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

复制后,firstArray和secondArray的保留计数是什么?

1 个答案:

答案 0 :(得分:2)

每个

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