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