我以为NSArray
//NSDictionary
和NSSet
它们的可变子类只是添加了指向对象的指针,而不是它自己的对象。
因此,如果在将我的“简单”对象添加到容器后将其设置为 nil,为什么引用 nil 不在数组(容器)中?
这是代码:
NSMutableArray *array = [[NSMutableArray alloc] init];
Simple *simple = [[Simple alloc] init];
[array addObject:simple];
//Array sends retain, lets release
[simple release], simple = nil;
NSLog(@"Simple = \"<Simple: %p>", simple);
NSLog(@"Array: %@", array);
[array release], array = nil;
这是输出:
2011-02-16 20:00:03.149 Allocations[5433:207] Simple = <Simple: 0x0>
2011-02-16 20:00:03.150 Allocations[5433:207] Array: (
<Simple: 0x4d3d4e0>
)