在辅助线程中设置NetworkActivityIndi​​catorVisible值是否安全?

Jas*_*son 4 objective-c nsoperation nsoperationqueue ios

我想知道AppDelegate是否是线程安全的?我目前有一个在辅助线程上运行网络任务的操作,当任务开始时,我想设置NetworkActivityIndicatorVisibleYES,当任务完成时,将其设置为NO.我是否必须始终在主线程中调用它,或者我可以在当前的运行循环线程中执行它?

谢谢

Jod*_*ins 7

一般来说,UIKit不是线程安全的.虽然你可能能够"逃脱"某些事情,但你应该总是在主线程上做UIKit的东西.有一些记录良好的例外情况.

从后台线程执行此操作的模式很简单.

dispatch_async(dispatch_get_main_queue(), ^{
    // Put any code you want to execute in the main thread here.
});
Run Code Online (Sandbox Code Playgroud)

传递给dispatch_async的块内的代码将被安排在主运行循环中运行.