Вот код сохранения счета.
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
@autoreleasepool {
NSNumber *number = [[NSNumber alloc]initWithInt:10];
NSMutableArray *array = [[NSMutableArray alloc]initWithCapacity:0];
NSLog(@"retain count : %d",[number retainCount]);
[array addObject:number];
NSLog(@"retain count : %d",[number retainCount]);
[number release];
NSLog(@"retain count : %d",[number retainCount]);
[number release];
NSLog(@"retain count : %d",[number retainCount]);
[number release];
NSLog(@"retain count : %d",[number retainCount]);
}
return 0;
}
Мой ожидаемый ответ -
retain count : 1
retain count : 2
retain count : 1
retain count : 0
and then error
, но на самом деле результат работы следующий:
[Switching to process 6363 thread 0x0]
2011-12-01 19:39:53.843 nsnumber[6363:707] retain count : -1
2011-12-01 19:39:53.846 nsnumber[6363:707] retain count : -1
2011-12-01 19:39:53.847 nsnumber[6363:707] retain count : -1
2011-12-01 19:39:53.847 nsnumber[6363:707] retain count : -1
2011-12-01 19:39:53.848 nsnumber[6363:707] retain count : -1
Я могу 'Я не понимаю этот результат.
Почему этот результат придет?