2010-07-29 91 views
0

我需要在數據庫操作期間向用戶顯示一個活動指示器,這需要幾秒鐘的時間。訪問數據庫時的異步數據庫調用/ ActivityIndi​​cator

我有UIActivityIndi​​cator配置和工作,但是當我調用[myActivity startAnimating];下一次調用是做數據庫操作,它永遠不會顯示我的活動。

我認爲這可以通過異步訪問數據庫來解決,但我不知道如何做到這一點。

感謝您的任何相關信息。

回答

1

當您執行數據庫查詢時,主UI可能會凍結,因此凍結動畫。

如何在後臺線程中運行的數據庫操作:

[myActivity startAnimating]; 
[self performSelectorInBackground:@selector(someMethod) withObject:nil]; 


-(void)someMethod { 
    // do something in the background here. 
    // long running task 
    [myActivity performSelectorOnMainThread:@selector(stopAnimating) withObject:nil]; 
} 

有一點需要注意,如果你使用的核心數據在後臺線程更新日期必須同步他們這樣的變化出現在主線程(在Core Data/Threading上閱讀更多信息)