Я не знаю, что здесь происходит, но у меня есть следующий код в моем методе init:
NSLog(@"retain count in init before alloc: %d", [game1CustomEntityInfoControl retainCount]);
game1CustomEntityInfoControl = [[CustomEntityInfoControl alloc] initWithFrame:CGRectZero];
NSLog(@"retain count in init after alloc: %d", [game1CustomEntityInfoControl retainCount]);
[[self contentView] addSubview:game1CustomEntityInfoControl];
NSLog(@"retain count in init after adding to superview: %d", [game1CustomEntityInfoControl retainCount]);
Я знаю, что должен выпустить game1CustomEntityInfoControl, так как superview сохраняет объект, но оставляю его длясейчас.
Тогда в моем методе layoutSubviews у меня есть:
// We always call this, the table view cell needs to do its own work first
[super layoutSubviews];
NSLog(@"retain count as soon as you enter layoutSubviews: %d", [game1CustomEntityInfoControl retainCount]);
[[self contentView] subviews];
NSLog(@"retain count in layoutSubviews after calling subviews on contentView: %d", [game1CustomEntityInfoControl retainCount]);
Это вывод:
2010-10-24 15: 14: 08.598 Сангаку [8592:207] сохранить счет в init до выделения: 0
2010-10-24 15: 14: 08.603 Сангаку [8592: 207] сохранить счет в init после alloc: 1
2010-10-24 15: 14: 08.611 Сангаку [8592: 207] сохраняет счет в init после добавления в суперпредставление: 2
2010-10-24 15: 14: 08.616 Сангаку [8592: 207] сохраняет счет, как только вывведите layoutSubviews: 2
2010-10-24 15: 14: 08.621 Сангаку [8592: 207] сохранить счет в layoutSubviews после вызова подпредставлений для contentView: 3
Посмотрите на последнюю строку вывода,Как количество сохранений достигло 3?Внутренние подпредставления выполняют ли какое-то распределение, которое возвращается как автоматически выпущенное?
Спасибо