在开始实际工作之前,我目前正在使用 ARC 来弄清楚一些事情。我确实设置了这段代码:
NSNumber* n = [[NSNumber alloc] initWithInt:3];
__weak NSNumber* weakN = n;
n = nil;
NSLog(@">>>: %@ %@", n, weakN);
我预计 n 和 weakN 为零,因为 n = nil; 应该触发我眼中的释放吗?不幸的是,它没有。输出是 >>>: (null) 3"。我在这里想念什么?
另一件事是,我很确定,下面的代码让我从 arc 开始时遇到了困难:
__weak NSNumber* weakN2 = [[NSNumber alloc] initWithInt:3];
NSLog(@">>>: %@", weakN2);
我很确定,我在使用类似代码时遇到了一些问题,因为 arc 会在初始化后立即释放对象,因为没有对该对象的强引用。不幸的是,上面的输出是 >>>: 3"。
对这些东西进行一些澄清会很棒。我显然在这里遗漏了一些东西!
最好的问候,迈克尔