【发布时间】:2023-04-05 16:09:01
【问题描述】:
假设我有一个名为 test 的方法。
test{
NSString *answer = [[NSString alloc] initWithString:@"VALUE 1"];
answer = [[NSString alloc] initWithString:@"VALUE 2"];
}
当 answer 重新初始化时,ARC 下第一次初始化的内存会发生什么变化?
【问题讨论】:
-
第二行有一个无关的
@。 -
请注意 NSString *answer = [[NSString alloc] initWithString:@"VALUE 1"];与 NSString 完全相同 *answer = @"VALUE 1";
-
它去了 NSObject 天堂。如果它很好,它可能会转世为 NSNumber 或 UIImage。
-
@Catfish_Man - 不完全是。第一个需要创建一个包含字节“VALUE 1”的新 NSString 对象。第二个简单地使用“interned”文字字符串。
-
@HotLicks,这实际上不是必需的。在这两种情况下,您都会得到一个带有当前编译器/运行时的静态分配字符串。
标签: ios memory-management automatic-ref-counting