0
私のiPhoneアプリケーションの別のスレッドでrssパーサーを取得しようとしていますが、これを行うとスピンインジケータしか表示されません何もない)。しかし、viewDidAppearの呼び出し[NSThread ....]をコメントアウトし、[self loadData]行のコメントを外すと、すべてが機能しますが、別のスレッドでは動作しません。何か不足していますか?あなたがここで提供できるどんな洞察力もありがとう!RSSは別スレッドでは動作しませんが、メインスレッドではうまく動作します
ここにコードがあります。すべてのUIの変更は、メインスレッド上でなされるべきである
- (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:'を試しましたか? –
はい、うまくいきましたが、なぜ私は1つが動作し、もう1つは奇妙ではないと思うのですか? – Allen