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

0 ответов

Другие вопросы по тегам