我正在創建一個從數據庫中獲取一組結果的應用程序 - 我使用MBProgressHUD來顯示查詢的動畫進度。我使用的方法在另一個線程中執行方法時調用動畫,一旦完成,它就隱藏動畫。我的問題是,打完電話後:iOS中的多線程 - 如何強制線程等待條件?
[HUD showWhileExecuting:@selector(getResults) onTarget:self withObject:nil animated:YES];
我想,如果沒有結果,顯示一個警告,說明這一點,如果有,加載下一個視圖。到目前爲止,我有這樣的代碼:
[HUD showWhileExecuting:@selector(getResults) onTarget:self withObject:nil animated:YES];
if(self.thereAreEvents) {
[self performSegueWithIdentifier:@"searchResults" sender:self];
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No results" message:@"Sorry, there are no results for your search. Please try again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
self.thereAreEvents
被設定在getResults
方法結束。但是,由於該方法在另一個線程中被調用,因此即使數據庫中存在事件,該行的執行也會繼續並顯示警報。
所以,從這裏開始,我有兩個問題:什麼是在iOS中實現等待信號機制的最簡單方法,以及在iOS中實現這種機制的最有效方式是什麼?
謝謝!
。我仍然需要學習iOS編程。我會看看那個。謝謝! – KerrM 2012-03-06 19:46:19
'通過一個區塊'模式是相對較新的,但似乎是蘋果公司在iOS 5中的新API中領導的方向。 'TWRequest'或'ACAccountStore'。實際上,按照似乎正在出現的慣例,使用'completionHandler:'而不是'performWhenFinished:'來提供塊可能會更好。 – Tommy 2012-03-06 19:55:00