2017-10-30 6 views
-1

iOSでシングルトンのインスタンスを観察するような、別のクラスのプロパティを観察しますか?私は試しましたが、別のクラスからkeypathを書くのは辛いです。iOS KVOは別のクラスのプロパティを観察します

[self addObserver:self forKeyPath:@"otherclass/keypath" options:NSKeyValueObservingOptionNew context:NULL]; 

答えて

0

addObserverメッセージの受信機が観測されたオブジェクトです。だからあなたのシングルトンのインスタンスでなければなりません。キーパスは、このシングルトンの観測可能なプロパティの名前で始まる必要があります。例えば:

[[SingletonClass instance] addObserver:self forKeyPath:@"propertyName" options:NSKeyValueObservingOptionNew context:NULL]; 

キーパスには、ドットで区切られた一連のプロパティ名を含めることができます。例のために:キーウィンドウのルートビューコントローラを観察したい場合は、

[[UIApplication sharedApplication] addObserver:self 
    forKeyPath:@"keyWindow.rootViewController" 
    options:NSKeyValueObservingOptionNew context:NULL]; 
0

あなたはこれをやってみました:

[Otherclass addObserver:self forKeyPath:@"keypath" options:NSKeyValueObservingOptionNew context:NULL]; 
関連する問題