У меня есть контроллер представления, который является подклассом UIViewController, в котором есть табличное представление, и каждая строка в табличном представлении связана с отдельным URL-адресом xml. Я создал класс синтаксического анализатора, который является подклассом NSOperation, и реализовал методы для анализа файла XML при выборе каждой строки, как,
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self performSelectorOnMainThread:@selector(pushView) withObject:nil waitUntilDone:NO];
[self performSelectorInBackground:@selector(parseOperation:) withObject:indexPath];
}
- (void)pushView {
detailView = [[viewDetailsController alloc] initWithNibName:@"viewDetailsController" bundle:nil];
[self.navigationController pushViewController:detailView animated:YES];
}
- (void)parseOperation:(NSIndexPath *)indexPath {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
self.queue = [[NSOperationQueue alloc] init];
parserClass *parser = [[parserClass alloc] initWithParseUrl:[[self.arrayOfUrls objectAtIndex:indexPath.row]delegate:self];
[queue addOperation:parser];
[parser release];
[pool release];
}
Parser отлично работает, но в его пользовательском методе делегата я вызывал, чтобы поместить контроллер представления в верхнюю часть стека контроллера навигации, контроллер представления инициализируется правильно, но новый контроллер представления не выталкивается на экран.
Я отредактировал вопрос для использования основного потока и фонового потока, в то время как фоновый поток работает правильно для синтаксического анализа основного потока, который просто инициализируется и не нажимает контроллер представления. В чем проблема ?