я получил NSArray, который заполняется в методе init моего UITableViewController.
Я использую этот объект в "didSelectRowAtIndexPath" для передачи другого контроллера tableview.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ablogSingleCatTableViewController *singleCatTableViewController = [[ablogSingleCatTableViewController alloc] initWithStyle:UITableViewStylePlain category:[categories objectAtIndex:indexPath.row]];
[[self navigationController] pushViewController:singleCatTableViewController animated:YES];
[singleCatTableViewController release];
}
это работает несколько раз, когда я запускаю свое приложение. после выбора строки и возврата к главному контроллеру uitableview в произвольной точке мое приложение вылетает после выбора строки.
с некоторыми nslogs я обнаружил, что он падает, если я пытаюсь использовать мой объект "category".
так
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"before");
NSLog(@"cats: %@", categories);
NSLog(@"after");
ablogSingleCatTableViewController *singleCatTableViewController = [[ablogSingleCatTableViewController alloc] initWithStyle:UITableViewStylePlain category:[categories objectAtIndex:indexPath.row]];
[[self navigationController] pushViewController:singleCatTableViewController animated:YES];
[singleCatTableViewController release];
}
с этим кодом мое приложение падает после «до» ... «после» никогда не появляется.
я не знаю, почему мой объект "категории" сбивает мое приложение?!
мой объект категорий определен в моем заголовочном файле и имеет @property (nonatomic, retain). я синтезирую и выпускаю его в моем методе dealloc.
У кого-нибудь есть идея?
// редактировать:
некоторые подробности здесь, из-за комментариев:
Консоль отладчика говорит: «Программа получила сигнал:« EXC_BAD_ACCESS ».
Я создаю массив категорий следующим образом:
- (void)initCategories {
NSString *path = [[NSBundle mainBundle] pathForResource:@"Categories" ofType:@"plist"];
[self setCategories:[[NSArray alloc] initWithContentsOfFile:path]];
}
вызов этого метода в моем методе initwithstyle
[self initCategories];
мой другой пользовательский метод инициализации выглядит примерно так:
- (id)initWithStyle:(UITableViewStyle)style category:(NSDictionary*)cat {
if (self = [super initWithStyle:style]) {
currentCategory = cat;
items = [[NSMutableArray alloc] init];
self.title = [currentCategory objectForKey:@"TITLE"];
//XLog("%@", currentCategory);
}
return self;
}