возможно?Абсолютно.
Тебя это волнует?Ничуть.Только если вы переопределили setEnabled:
в подклассе и вы - тот, кто делает вызов retain
.
Если это так, то это деталь реализации в инфраструктуре.
Подумайте о том, чтобы сохранить счет как дельты, а не как абсолютные числа.Абсолютное значение не имеет смысла.Таким образом:
- (id)initWithData:(NSMutableArray *) {
UITextView *myText;
if ( ( self = [super init] ) ) {
myText = [[UITextView alloc] initWithFrame:aRect]; // rc +1
[myText setEnabled:NO]; // rc change irrelevant
[self addSubview:myText]; // rc change irrelevant
[myText release]; // rc -1
}
}
Итак, да, вы правильно управляли памятью;в конце области действия локальной переменной myText
все удержания были сбалансированы по версиям.
Когда вы addSubview:
, этот метод сохраняет объект или делает его копию, является подробностью реализацииэто не относится к управлению памятью в этой области.Очевидно, что подпредставление поддерживает ссылку и сохраняет ее, что необходимо для ее целей, но это деталь реализации, выходящая за рамки управления этим методом!