簡體   English   中英

在不使用塊UI的情況下使用NSXMLParser和NSOperation

[英]Use NSXMLParser and NSOperation without block UI

我有一個搜索欄,並從互聯網搜索一些信息,然后從URL啟動NSXMLParser,然后顯示在UITableView中解析的信息,但是在此過程中,UI被阻止,如果我想取消搜索以進行另一次搜索,我可以不是,我必須等待解析器完成,所以我的問題是,如果這是正確的解決方案,我該如何在另一個線程上執行,然后在必要時中止搜索以進行另一個搜索?...我知道NSOperation類,但是此類如何將信息提供給表視圖以顯示數據?...以及我如何中止該操作以執行其他操作?

現在我這樣做來進行搜索:

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

然后是request方法,從另一個類開始,使用NSXMLParser進行搜索...

為了避免阻塞用戶界面,您可以使用

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

我在NSOperation方面工作不多,但是從文檔看來,您可以為操作設置一個完成塊,您可以在其中調用類似

[self performSelectorOnMainThread:@selector(populateMyTable) withObject:nil waitUntilDone:NO];

另外,NSOperation具有cancel實例方法的作用,似乎可以中止搜索方法,為您提供所需的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM