Я пытаюсь получить rss-парсер в другом потоке в моем приложении iphone, но когда я это делаю, я получаю только индикатор поворота (т. Е. ничего). Но если я прокомментирую вызов [NSThread ....] в viewDidAppear и раскомментирую строку [self loadData], все работает (но тогда это не на другой поток). Я что-то упускаю? Спасибо за любое понимание, которое вы можете предоставить здесь!RSS в другой теме не работает, но отлично работает, когда на основной теме
Вот код.
- (void)viewDidAppear:(BOOL)animated {
[NSThread detachNewThreadSelector:@selector(loadData) toTarget:self withObject:nil];
//[self loadData];
[super viewDidAppear:animated];
}
- (void)loadData {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
if (items == nil) {
[activityIndicator startAnimating];
Parser *rssParser = [[Parser alloc] init];
[rssParser parseRssFeed:@"http://www.mywebsite.com/xml" withDelegate:self];
[rssParser release];
} else {
[self.tableView reloadData];
}
[pool release];
}
Спасибо .. Это имеет смысл, но я просто попробовал, но все равно результат только в показателе поворота. Опять же, если я прокомментирую строку NSThread и поставлю [self loadData] в этот момент, это работает, что заставляет меня думать, что что-то с вызовом NSThread неверно или что-то ... вы думаете? – Allen
В соответствии с этим: http: //www.iphoneexamples.com/, вы правильно используете потоки. Вы пробовали 'performSelectorInBackground:'? –
Да, хорошо, что работает, и теперь я удивляюсь, почему один работает, а другой не делает. Кажется странным. – Allen