2011-05-31 13 views
0

私のアプリでは、テーブルビューで読み込むために70000のレコードがたくさんあります。 10分のように読み込むには多くの時間がかかります。メインのUIスレッドをブロックするので、戻ったりボタンにアクセスすることはできません。この目的のために別のスレッドを使用するような代替方法や代替アプローチがありますか?何とか私を見せてください。iphoneのuitableviewでデータを読み込み中にキャンセルする

ありがとう、 Vinod。

答えて

1

NSThreadを使用してください。あなたが新たに作成されたスレッドからメインUIスレッド上で何もする必要がある場合は、現在のオブジェクトにperformSelectorOnMainThread:withObjectメソッドを使用し

NSThread *thread = [NSThread initWithTarget:self selector:@selector(loadData:) object:nil]; 
[thread start]; 
[thread release]; 

-(void) loadData:(id) obj { 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    // load data 
    [pool release]; 
} 

あなたのコードは、の線に沿って何かを見ていきます。

+0

メインスレッドをブロックするtableviewを読み込みます。真ん中で荷物を取り消す方法はありますか?ありがとう! – Atom

+0

はい、スレッドへの参照を持っている限り、キャンセルメソッドを呼び出すことで取り消すことができます。すべてのデータを一度にUIスレッドに強制しようとしているようです。あなたはデータを分割しようとしましたか?ユーザーは70,000行すべてを一度にスクロールすることはできませんか? – csano

関連する問題