В настоящее время я изучаю цель-c и сейчас я тренируюсь с NSTableView.
Вот моя проблема:
Я связал свое табличное представление с моим контроллером через Interface Builder, чтобы он имел источник данных, я реализовал протокол NSTableViewDataSource в моем контроллере и реализовал оба метода -(NSInteger) numberOfRowsInTableView:
и -(id) tableView:objectValueForTableColumn:row:
.
Я создал необработанный бизнес-класс («персона») и мне удалось отобразить его содержимое в моем NSTableView.
Но затем я добавил NSLog
в мои методы dealloc, чтобы посмотреть, была ли освобождена память или нет, и кажется, что мой массив, а также мои экземпляры "person" никогда не освобождаются.
вот мой код деаллока в контроллере:
-(void)dealloc
{
NSLog(@"the array is about to be deleted. current retain : %d",[personnes retainCount]);
[personnes release];
[super dealloc];
}
а в моем "личном" классе
-(void) dealloc
{
NSLog(@"%@ is about to be deleted. current retain : %d",[self prenom],[self retainCount]);
[self->nom release];
[self->prenom release];
[super dealloc];
}
Когда предполагается, что эти освобождения вызываются в жизненном цикле приложения? Потому что я ожидал, что они будут вызваны при закрытии окна, но это не так.
В надежде быть достаточно ясным
Спасибо:)
кайт.