gpt4 book ai didi

ios - 如何在 dispatch_async 中调试当前队列?

转载 作者:行者123 更新时间:2023-11-28 12:40:14 26 4
gpt4 key购买 nike

这是我在其中一个项目中遇到的:

private func updateBadgeView() {

dispatch_async(dispatch_get_main_queue()) {

if UIApplication.sharedApplication().applicationIconBadgeNumber > 0 {

self.newMessagesBadgeView.hidden = false
self.newMessagesCountLabel.text = String(UIApplication.sharedApplication().applicationIconBadgeNumber)

} else {
self.newMessagesBadgeView.hidden = true
}
}
}

而且我认为该队列的 dispatch_async 在这里是无用的。我如何查看此处的队列?我真的需要这个街区吗?我需要检查它是否与没有阻塞的队列相同。

上述函数在UIViewController 的子类中,在viewDidLoadviewDidAppear 中调用

更新:

我知道因为ios有bug,这里需要:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

dispatch_async(dispatch_get_main_queue()) {
self.presentOverlayController(selectViewController)
}
}

最佳答案

如果在viewDidLoadviewDidApperar中调用是没用的。但是,您可以使用类似的代码进行检查:

private func updateBadgeView() {

let block = {
if UIApplication.sharedApplication().applicationIconBadgeNumber > 0 {

self.newMessagesBadgeView.hidden = false
self.newMessagesCountLabel.text = String(UIApplication.sharedApplication().applicationIconBadgeNumber)

} else {
self.newMessagesBadgeView.hidden = true
}
}

if ([NSThread isMainThread]) {
block();
} else {
dispatch_async(dispatch_get_main_queue()) {
block();
}
}
}

关于ios - 如何在 dispatch_async 中调试当前队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39588988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com