2012-04-26 1 views
0

私は検索バーを持っていて、インターネットからいくつかの情報を検索してからURLからNSXMLParserを起動して、情報をUITableViewで解析しますが、このプロセスではUIがブロックされます別の検索を行うために検索をキャンセルすることはできません。パーサーが完了するのを待つ必要があります。私の質問は、別のスレッドで正しい解決方法があれば実行でき、必要な場合は別の検索を中止する方法です?...私はNSOperationクラスを知っていますが、どのようにしてこのクラスがデータを表示するためにテーブルビューに情報を与えることができますか?...そして、別の操作を行うために操作を中止する方法は?ブロックUIなしでNSXMLParserとNSOperationを使用

今私が検索を行うには、この操作を行います。UIをブロックしないようにするには、リクエストメソッド

[self performSelector:@selector(request:) withObject:searchText afterDelay:0.7]; 

、別のクラスにNSXMLParserと検索を開始...

答えて

0

、あなたが使用します

[self performSelectorInBackground:@selector(request:) withObject:text];

私はNSOperationであまり働いていないが、あなたはオペラのための補完ブロックを設定することができますようにドキュメントから、それが見えますションは、ここであなたが何かも[self performSelectorOnMainThread:@selector(populateMyTable) withObject:nil waitUntilDone:NO];

のように、NSOperationはあなたの検索方法を中止する限り、探しているものを提供しているようだインスタンスメソッド cancelを持って呼び出すことができます。

+0

答えに感謝します! – Piero

関連する問題