Я только начинаю узнавать о правильном освобождении объектов для управления памятью в iOS. Мой самый большой вопрос основан на приведенном ниже коде.
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"My View Controller";
UIBarButtonItem *item = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(doSomething)];
self.navigationItem.rightBarButtonItem = item;
[item release];
}
Хорошо, я вижу, что UIBarButtonItem был создан (alloc). Теперь для него установлено свойство rightBarButtonItem
в следующей строке:
self.navigationItem.rightBarButtonItem = item;
Сразу после этой строки предмет отпускается.
[item release];
Я предполагаю, что элемент скопирован в rightBarButtonItem, но как я могу знать, что это происходит? Если это будет передано по ссылке, у меня будет проблема, не так ли? Может кто-то уточнить, что здесь происходит и почему выпуск объекта является законным? Большое спасибо.