我知道要进行UI更新,您需要在主线程上执行更新。我是用
做的[[NSOperationQueue mainQueue] addOperationWithBlock:]
但目前我只是在UI更新无效的情况下添加它,而不理解原因。
你怎么知道在主线程上执行了哪些事情以及哪些事情不是?通常所有回调和委托函数都在一个侧面线程上吗?那些在触发某些事件时执行的功能怎么样,比如按下按钮?
我想知道主线上没有东西时的一般规则,所以我不必等待先破坏的东西。
答案 0 :(得分:0)
您始终可以使用+isMainThread方法检查您是否在主线程上运行:
-(void)uiUpdateMethod
{
if([NSThread isMainThread])
{
//main just exec code
}
else
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
//exec code
}];
}
}
但据我了解,您想知道在后台线程上执行的确切方法。所以不幸的是,这是一个非常复杂的问题和答案是框架文档。