в течение дня я смотрю на следующую рутину и не могу справиться с ней. У меня есть класс, например:
МойКласс.h
...
@interface MyClass : NSObject {
NSNumber *myNumber1;
NSNumber *myNumber2;
}
@property (nonatomic, retain) NSNumber *myNumber1;
@property (nonatomic, retain) NSNumber *myNumber2;
@end
и м-файл
#import "MyClass.h"
@synthesize myNumber1, myNumber2;
@implementation MyClass
-(id) init {
self = [super init];
NSLog(@"Retain Counts myNumber1: %d, myNumber2: %d", [myNumber1 retainCount], [myNumber2 retainCount]);
myNumber1 = [NSNumber inbitWithint:10];
myNumber2 = [NSNumber inbitWithint:2];
NSLog(@"Retain Counts myNumber1: %d, myNumber2: %d", [myNumber1 retainCount], [myNumber2 retainCount]);
return self;
}
...
Я использую этот класс в качестве контейнера глобальных переменных и создаю его экземпляры из любого другого класса в своем приложении, используя
MyClass *myGlobals = [[MyClass alloc] init];
===>>> чудак >>>
Запустив подпрограмму, я получаю следующий интересный вывод консоли:
Retain Counts (before) - myNumber1: 0, myNumber2: 0
Retain Counts (after) - myNumber1: 1, myNumber2: 26
Как это может быть?