Objective c KVO和更改值上的UI已更改

Objective c KVO和更改值上的UI已更改,objective-c,ios,thread-safety,key-value-observing,Objective C,Ios,Thread Safety,Key Value Observing,如果我添加了一个观察者来观察UILabel的“突出显示”属性,我可以在观察回调块中更改另一个UIView吗?ie:我保证这个回调块总是在主线程上执行吗 谢谢 您将在更改您正在观察的属性的线程上收到observeValueForKeyPath:…消息 UIKit仅支持在主线程上更改视图的属性。只要遵循该规则,您将只在主线程上收到通知 如果需要从另一个线程更改标签的突出显示的属性,则应分派到主线程进行更改。例如,您可以从任何线程安全地执行此操作: dispatch_async(dispatch_ge

如果我添加了一个观察者来观察UILabel的“突出显示”属性,我可以在观察回调块中更改另一个UIView吗?ie:我保证这个回调块总是在主线程上执行吗


谢谢

您将在更改您正在观察的属性的线程上收到
observeValueForKeyPath:…
消息

UIKit仅支持在主线程上更改视图的属性。只要遵循该规则,您将只在主线程上收到通知

如果需要从另一个线程更改标签的
突出显示的
属性,则应分派到主线程进行更改。例如,您可以从任何线程安全地执行此操作:

dispatch_async(dispatch_get_main_queue(), ^{
    myLabel.highlighted = YES;
});

您将在更改正在观察的属性的线程上收到
observeValueForKeyPath:…
消息

UIKit仅支持在主线程上更改视图的属性。只要遵循该规则,您将只在主线程上收到通知

如果需要从另一个线程更改标签的
突出显示的
属性,则应分派到主线程进行更改。例如,您可以从任何线程安全地执行此操作:

dispatch_async(dispatch_get_main_queue(), ^{
    myLabel.highlighted = YES;
});