gpt4 book ai didi

iphone - dispatch_async 在某处滞后,找不到哪里。有 NSLog 问题吗?

转载 作者:太空狗 更新时间:2023-10-30 03:46:40 26 4
gpt4 key购买 nike

所以我有这段代码:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

//Bunch of code

NSLog(@"Test");

});

立即运行并返回 nslog。但是代码的结果出现在屏幕上只有几秒钟的延迟。在这里使用 nslog 是否有问题,这意味着它在通常情况下被调用之前被调用,使它看起来很快,但实际上并非如此。我对这种延迟的来源感到困惑,因为 NSLog 就在当时运行的所有代码的末尾。

此外,我的问题的另一种解决方案是,是否可以在调用每个方法时获取 NSLog(我想有点像 NSZombiesEnabled),这样我就可以确保没有一些我没有注意到的东西我的应用程序响应时间好吗?

最佳答案

UIKit 不是线程安全的。您所做的任何影响您的 UI 的调用都需要在主线程上进行,否则您会得到奇怪的、不可预测的行为。示例:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

// Background code that doesn't need to update the UI here

dispatch_async(dispatch_get_main_queue(), ^{
// UI code here
});
});

关于iphone - dispatch_async 在某处滞后,找不到哪里。有 NSLog 问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986596/

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