オブザーバーを追加する方法があります。
- (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()
、他のキューに変更する方法がわかりません。