Saya memiliki pengontrol tampilan yang merupakan sub kelas UIViewController yang memiliki tampilan tabel ke dalamnya dan setiap baris dalam tampilan tabel ditautkan ke url xml yang berbeda. Saya membuat kelas parser yang merupakan sub kelas NSOperation dan menerapkan metode untuk mengurai file XML pada pilihan setiap baris sebagai,
- (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 berfungsi dengan baik tetapi dalam metode delegasi khusus yang saya panggil untuk mendorong pengontrol tampilan di bagian atas tumpukan pengontrol navigasi, pengontrol tampilan diinisialisasi dengan benar tetapi pengontrol tampilan baru tidak didorong ke layar.
Saya telah mengedit pertanyaan untuk menggunakan utas utama dan utas latar belakang sementara utas latar berfungsi dengan benar untuk menguraikan utas utama hanya menginisialisasi dan tidak mendorong pengontrol tampilan. Apa masalahnya ?