我知道这听起来不对!但我需要实现的是在主线程上运行一个巨大的枚举,这显然会阻塞整个应用程序。我正在寻找的是循环周期之间的一种动画或延迟,以便其他代码有机会执行。这是我的代码:
for (NSTextCheckingResult* match in matchedArray) {
dispatch_async(dispatch_get_main_queue(), ^{
[self addAttributes:@{NSBackgroundColorAttributeName:[UIColor redColor]} range:match.range];
});
}
正如评论中提到的,此代码与 UI 相关,它必须在主线程上运行。
我也尝试过dispatch_after
,但似乎它会在等待时间阻塞线程。无论如何我可以做到这一点,还是我必须重新设计我的整个逻辑?!