我正在開發一個帶有XMPPframework的應用程序。當我下載用戶的電子名片(圖片,名字等)時,該應用會阻塞,直到它下載了當時連接的所有人的數據。iphone - 如何防止應用程序在下載數據時被阻止
我需要在第二個線程(我還沒有使用過多線程),以便應用程序能夠響應新的觸摸並在數據下載時顯示活動圖標。
我聽說過Grand Central Dispatch(GCD),但我也聽說過其他方法,你會推薦哪一種?
謝謝。
我正在開發一個帶有XMPPframework的應用程序。當我下載用戶的電子名片(圖片,名字等)時,該應用會阻塞,直到它下載了當時連接的所有人的數據。iphone - 如何防止應用程序在下載數據時被阻止
我需要在第二個線程(我還沒有使用過多線程),以便應用程序能夠響應新的觸摸並在數據下載時顯示活動圖標。
我聽說過Grand Central Dispatch(GCD),但我也聽說過其他方法,你會推薦哪一種?
謝謝。
你可以在第二個線程上做這樣的事情。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
/* your code to download the vCards goes here */
/* if you are explicitly updating a UI element then you would have to perform that on the main thread so you would do something like this */
dispatch_async(dispatch_get_main_queue(), ^{
label.text = @"some text"; // or any other code that updates a UI element
});
});
如果你想要做的就是下載電子名片數據在第二線程和分配結果的變量那麼就沒有必要再次調用dispatch_async(),因爲你不執行任何操作在UI元素上。
我想說,如果你是從頭開始寫作,那麼沒有任何理由比其他任何東西都比GCD。它很好地與網絡上的很多示例結合在一起。 – 2012-03-01 16:19:23