我正在阅读一些书(链接),上面写着:“所有这些自动清理和内存回收只需设置items
为零即可。这就是 ARC 的力量。” . 这是关于以下代码的:
// create array
NSMutableArray *items = [[NSMutableArray alloc] init];
// add random BNRItems to the array
for (int i = 0; i < 10; i++) {
BNRItem *p = [BNRItem randomItem];
[items addObject:p];
}
// print items in array
for (BNRItem *item in items) {
NSLog(@"%@", item);
}
items = nil;
它基本上简要地解释了如何通过设置items = nil
上面的所有对象正确销毁。我的问题是:
- 说我正在使用 ARC,但我没有设置
items = nil
- 这是否意味着我会有内存泄漏?
我通过覆盖 BNRItem 的 dealloc 并打印一些信息进行了测试,即使我没有设置,也似乎在所有 BNRitems 上都正确调用了 dealloc items = nil
。