Wis*_*erd 0 objective-c thread-safety key-value-observing ios
如果我添加一个观察者来观察UILabel的"突出显示"属性,我可以在观察回调块中对另一个UIView进行更改吗?即:我保证这个回调块将始终在主线程上执行吗?
谢谢!
您将observeValueForKeyPath:...在线程上收到更改您正在观察的属性的消息.
UIKit仅支持在主线程上更改视图的属性.只要您遵循该规则,您将只会在主线程上收到通知.
如果需要highlighted从另一个线程更改标签的属性,则应调度到主线程来执行此操作.例如,您可以从任何线程安全地执行此操作:
dispatch_async(dispatch_get_main_queue(), ^{
myLabel.highlighted = YES;
});
Run Code Online (Sandbox Code Playgroud)