2011-05-21 8 views

答えて

1

私はしばらくの間、多くのiOSをやっていませんでした。おそらく、あなたのためにこれを行うコンビニエンスクラスなどがあります。しかし、いずれにせよ、あなたは次のようなことをすることができます。

リモートリソースのフェッチを処理するクラスを作成し、呼び出し元のクラスに、フェッチが完了したときに呼び出すメソッド(resourceDidFinishLoadingなど)を使用してMyAPIFetcherDelegateなどのプロトコルを実装します。そして、あなたはおそらく、あなたが戻って取得結果を実際に処理するために、周りにいくつかのデータを渡す必要があります

- (void)getResource 
{ 
    MyFetcher* fetcher = [[MyFetcher alloc] init]; 
    fetcher.delegate = self; 
    // start/show the UIActivityIndicator 
    [NSThread detachNewThreadSelector:@selector(fetchResource:) toTarget:fetcher withObject:nil]; 
} 

- (void)resourceDidFinishLoading 
{ 
    // Stop/Hide the UIActivityIndicator 
    // do something with the data that comes back 
} 

ノートのようなものを行うには、ミスがあることが可能ですので、私は、ラフメモリからこれを入力しました。しかしそれは一般的な考えです。そこから、あなたはドキュメントからそれを理解できるはずです。

また、APIのエラーについても忘れないでください。タイムアウトが発生した場合、スクリーンを放棄することを拒否してスピナーをそこに座らせたくありません。次のように

0


呼び出しとしてセレクタをNSThreadを作成します。

[NSThread detachNewThreadSelector:@selector(threadStartAnimating:) toTarget:self withObject:nil]; 
// Your code  
[spinner stopAnimating];  
[self.navigationcontroller pushviewcontroller:viewcontroller animated:YES];  

threadStartAnimating:

-(void)threadStartAnimating:(id)data  
{  
[spinner startAnimating];  
} 
関連する問題