Если у нас есть этот код в нашем интерфейсе .h файл:
@interface CarModelSelectViewController : UITableViewController {
NSString *fieldNameToStoreModel;
NSFetchedResultsController *fetchedResultsController;
NSManagedObjectContext *managedObjectContext;
DataEntered *dataEntered;
}
@property (nonatomic, retain) NSString *fieldNameToStoreModel;
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) DataEntered *dataEntered;
@end
В нашем файле реализации .m мы должны иметь:
- (void)dealloc {
[fieldNameToStoreModel release];
[fetchedResultsController release];
[managedObjectContext release];
[dataEntered release];
[super dealloc];
}
4 объекта назначены из предыдущего UIViewController, например:
UIViewController *detailViewController;
detailViewController = [[CarModelSelectViewController alloc] initWithStyle:UITableViewStylePlain];
((CarModelSelectViewController *)detailViewController).dataEntered = self.dataEntered;
((CarModelSelectViewController *)detailViewController).managedObjectContext = self.managedObjectContext;
((CarModelSelectViewController *)detailViewController).fieldNameToStoreModel = self.fieldNameToStoreModel;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
Объекты, которые теперь живут в новом UIViewController, такие же, как предыдущий UIViewController, и я не могу выпустить их в новом UIViewController?
Проблема в том, что иногда мое приложение вылетает, когда я покидаю новый UIViewController и перехожу на предыдущий, не всегда. Обычно ошибка, которую я получаю - это двойной свободный объект.
Я использовал malloc_error_break, но я все еще не уверен, какой объект.
Иногда я могу перейти от предыдущего UIViewController к следующему и вернуться 4 или 5 раз, и появляется двойной свободный объект.
Если я не отпускаю какой-либо объект, все работает, и Инструменты говорят, что нет утечек памяти ...
Итак, последний вопрос, я должен выпустить эти объекты здесь или нет?
Спасибо
м.
редактирование:
fetchedResultsController.delegate всегда равен nil, так как в этом представлении извлеченные объекты не изменяются, а NSFetchedResultsControllerDelegate отсутствует в файле @interface .h.
изменить 2:
Добавлено объявление свойств файла интерфейса, извините!