我对内存管理很陌生。我知道我的问题已经在StackOverflow上讨论过了。但是我想知道答案,以便完全理解它。我的问题是:

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

复制后firstArray和secondArray的保留计数是多少?

最佳答案

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

关于ios - 复制时保留计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33759184/

10-10 02:06