我有一个添加观察者的方法:
- (void) method
{
[currentPlayer addObserver:self forKeyPath:@"some" options:some context:some];
}
所有更改都在这些方法中处理:
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
如果我将方法修改为:
- (void) method
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
[currentPlayer addObserver:self forKeyPath:@"some" options:some context:some];
});
}
这是否意味着- (void) observeValueForKeyPath...
它将起作用DISPATCH_QUEUE_PRIORITY_HIGH
?
PS 我希望 KVO 在 DISPATCH_QUEUE_PRIORITY_HIGH 中工作。
编辑:
我观察 AVPlayer 变量。如:
[currentPlayer addObserver:self forKeyPath:@"currentItem.loadedTimeRanges" options:NSKeyValueObservingOptionNew context:kTimeRangesKVO];
这些变量会自动更改。
每次调用“observeValueForKeyPath”时,我都会检查队列,它仍然存在dispatch_get_main_queue()
,我不知道如何将其更改为其他队列。