[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