gpt4 book ai didi

ios - ARC下对象到变量的多个分配

转载 作者:行者123 更新时间:2023-12-01 18:27:55 24 4
gpt4 key购买 nike

有一点我尚不十分清楚100%的内存管理,假设有以下代码:

{
NSString *string = [[NSString alloc] init];
string = [[NSString alloc] init];
}

这会导致第一次分配的内存泄漏吗?如果不是,为什么不呢?

最佳答案

从概念上讲,BJ是正确的,但是生成的代码略有不同。它是这样的:

NSString *string = [[NSString alloc] init];

// Oh, we're changing what `string` points to. Gotta release the old value.
NSString *tmpString = string;
string = [[NSString alloc] init];
[tmpString release];
[string release]; // string goes out of scope at this point in your code

该操作顺序通常不是那么关键(如果您对此太在意,则可能是编码错误)。但是了解它可以解释为什么这些对象会在正确的时候被破坏。

关于ios - ARC下对象到变量的多个分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11652432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com