NSArray retainCount
Я думал, что это будет напечатано в порядке 0-1->0. Этот вывод был странно отличным результатом. (0->3->2) Почему это?
ClassA.h:
@interface ClassA : NSObject
{
NSArray *array;
}
@property(nonatomic, retain)NSArray *array;
@end
main.c
int main(int argc, const char * argv[])
{
@autoreleasepool {
ClassA *classA = [[ClassA alloc]init];
NSLog(@"retainCount %lu", (unsigned long)[classA.array retainCount]);
classA.array = [[NSArray alloc]init];
NSLog(@"retainCount %lu", (unsigned long)[classA.array retainCount]);
[classA.array release];
NSLog(@"retainCount %lu", (unsigned long)[classA.array retainCount]);
}
return 0;
}
Выход:
2014-02-10 11:58:24.459 retainCount[4031:303] retainCount 0
2014-02-10 11:58:24.461 retainCount[4031:303] retainCount 3
2014-02-10 11:58:24.462 retainCount[4031:303] retainCount 2