[tabViewController.tabBarItem setBadgeValue : [NSString stringWithFormat:@"%d",totalUnreadMessages]];
一切正常,但需要至少10秒才能更新。有什麼理由可能會發生這種情況嗎?無論如何強制更新?TabBar項目badgeValue更新但延遲
[tabViewController.tabBarItem setBadgeValue : [NSString stringWithFormat:@"%d",totalUnreadMessages]];
一切正常,但需要至少10秒才能更新。有什麼理由可能會發生這種情況嗎?無論如何強制更新?TabBar項目badgeValue更新但延遲
您不應該在全局隊列上執行UI更新 - 這就是爲什麼在發生任何事情之前您經歷了長時間的延遲。如果您在後臺隊列中收到服務器響應,請使用dispatch_async(dispatch_get_main_queue)...
更新您的用戶界面。
如果您沒有在後臺線程上收到服務器響應,則根本不需要使用dispatch_async。
感謝您的解釋我假設dispatch_async(dispatch_get_main_queue)可以在全局隊列中完成 – kos
是的......如果你在一個塊內在全局隊列上分派,您可以使用dispatch_async(dispatch_get_main_queue)來回調UI更新的主線程。 – alivingston
你打電話給什麼時候?你能發佈圍繞你的'setBadgeValue'代碼的代碼嗎? – alivingston
爲什麼要投票?它是從內部 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,(無符號長)NULL),^(無效) {; [自updateMessageTabBadge]})調用; 在appDelegate服務器響應後? – kos
dispatch_async(dispatch_get_main_queue(),^(void){} required? – kos