复制时保留计数
Retain count while copying
我对内存管理很陌生。我知道我的问题已经在 Whosebug 上讨论过了。但我想知道答案才能完全理解它。我的问题是:
NSMutableArray *firstArray = [[NSMutableArray alloc]init];
NSMutableArray *secondArray = [[NSMutableArray alloc] init];
secondArray = [firstArray copy];
复制后firstArray和secondArray的保留计数是多少?
每人1个。 firstArray
持有指向 firstArray
的指针。当您调用 secondArray = [firstArray copy];
时,firstArray
的内容被复制到一个新的内存位置,并且 secondArray
将指向该位置。这意味着 firstArray
和 secondArray
将指向不同的内存位置(并且是不同的对象),尽管它们具有相同的数据。因此,它们各自的保留计数为 1。
我对内存管理很陌生。我知道我的问题已经在 Whosebug 上讨论过了。但我想知道答案才能完全理解它。我的问题是:
NSMutableArray *firstArray = [[NSMutableArray alloc]init];
NSMutableArray *secondArray = [[NSMutableArray alloc] init];
secondArray = [firstArray copy];
复制后firstArray和secondArray的保留计数是多少?
每人1个。 firstArray
持有指向 firstArray
的指针。当您调用 secondArray = [firstArray copy];
时,firstArray
的内容被复制到一个新的内存位置,并且 secondArray
将指向该位置。这意味着 firstArray
和 secondArray
将指向不同的内存位置(并且是不同的对象),尽管它们具有相同的数据。因此,它们各自的保留计数为 1。