我有一個應用程序,當我從數據庫和建築物中讀取一些信息時,我想要一個圖像動畫。我已經使用UIImageView並設置和圖像數組,但如果我開始動畫,然後做我的數據庫處理,動畫不會播放。如何在動畫過程中執行處理
是否有另一種方式來啓動動畫,或者我在動畫過程中做處理?
感謝
我有一個應用程序,當我從數據庫和建築物中讀取一些信息時,我想要一個圖像動畫。我已經使用UIImageView並設置和圖像數組,但如果我開始動畫,然後做我的數據庫處理,動畫不會播放。如何在動畫過程中執行處理
是否有另一種方式來啓動動畫,或者我在動畫過程中做處理?
感謝
這聽起來像你的主線程,因此您的動畫運行做你的處理。
動畫在主線程上運行,因此避免阻塞這個線程的處理應該在不同的線程進行調度。
你可以做到這一點使用塊像這樣:
dispatch_queue_t queue;
queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
// Your processing to be performed on this thread.
});
或者對早期的iOS版本,像這樣:
[self performSelectorInBackground:@selector(yourProcessing) withObject:nil];
- (void)yourProcessing {
// Your processing to be performed on this thread.
}
我強烈建議通過Threading Programming Guide的閱讀,其次是看WWDC會議討論區塊和大中央調度(WWDC 2009)。
你可以在開始動畫後在後臺線程上運行您的數據庫處理。這將允許兩者同時發生。
唉唉,是的,這就是我想的也是,不過,作爲新的XCode,目標C和iPad,我在尋找啓動一個線程的方式處理。在這方面的任何幫助,我會歡迎。例如,代碼片段等等。謝謝 – LilMoke 2012-01-06 18:14:54
@LilMoke查看[這篇文章](http://stackoverflow.com/questions/4422561/calling-performselectorinbackground-from-background-thread)和[this post](http:// stackoverflow .com/questions/873200/memory-management-and-performselectorinbackground)舉例和討論。關鍵是管理autoreleasepool,但這些例子告訴你如何正確地做到這一點。 – PengOne 2012-01-06 18:20:51
是的,現在經歷。 – LilMoke 2012-01-06 18:24:46
聽起來你正在試圖做的主線程,其中,是的,會阻塞你的UI,因此它不能動畫(因此用戶不能與任何交互)上的數據庫處理。看看Concurrency Programming Guide。
謝謝你,我正在翻閱它。 – LilMoke 2012-01-06 18:25:26