【问题标题】:Retain count while copying复制时保留计数
【发布时间】:2016-02-18 22:57:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios memory-management copy retaincount


    【解决方案1】:

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

    【讨论】:

    • 还有别忘了说原来secondArray的retain count会是0,会被释放。
    猜你喜欢
    • 2011-10-21
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 2015-06-14
    • 2011-10-30
    • 2015-06-16
    相关资源
    最近更新 更多