У меня есть класс, который извлекает данные из основных данных и сохраняет их в NSMutablearray. У него также есть функция, которая возвращает этот массив.
datamanager.h:
@interface DataManager : NSObject {
NSMutableArray *feedItems;
...
}
@property (nonatomic, retain) NSMutableArray *feedItems;
...
datamanager.m:
...
-(void)loadNews{
(load data from core data and put it in self.feedItems)
....
}
-(NSMutableArray*)getAllItems{
return self.feedItems;
}
Теперь у меня есть UIViewController с 2 UIviews (View1 и View2) в качестве IBOutlets. Когда кнопка в View1 нажата, она выбирает данные из класса datamanager и устанавливает их как NSMutablearray для использования для UItableviewController (tableView1).
После выделения и инициализации tableView1 и настройки массива Nsmutablearray для заполнения таблицы я добавляю его представление в качестве подпредставления для View 2. Теперь моя проблема заключается в том, что после освобождения tableview1 после этой процедуры я получаю EXEC_BAD_ACCESS.
Кнопка IB1 вида ViewAction:
-(void)loadItems{
if ([[dataManager getAllNews] count] > 0) {
ItemTableViewController *tableView1 = [[ItemTableViewController alloc] initWithNibName:@"ItemTableViewController" bundle:nil];
[tableView1 setItemList:[sectionManager getAllItems]];
for (UIView *view in View2.subviews) {
[view removeFromSuperview];
}
[View2 addSubview:tableView1.view];
[tableView1 release]; // if this is not released it works properly else EXEC_BAD_ACCESS
}
}
функция tableView1 setItemList:
-(void)setItemList:(NSMutableArray *)list{
self.ItemList = list; //self.ItemList is a NSMutableArray
}
Как правильно разблокировать tableView1? Я тоже пробовал авто-релиз, все еще не работает.