をイントロスペクト、ココアで観察:キー値は、私はboolean型プロパティにNSObjectのメソッドを観察し、キー値を使用してい変化特性
-(void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
このキーパスの値の最も興味深い部分はどのBOOLですYES/NOの間で常に反転しています。私が変更辞書から出てきたものは、kind = 1です。実際の変更値が何であるかを観察しているオブジェクトを調べていないのですか?
ありがとうございました。
[theObject addObserver: self
forKeyPath: @"theKey"
options: NSKeyValueObservingOptionNew
context: NULL];
...そして、あなたのオブザーバメソッドで:
-(void) observeValueForKeyPath: (NSString *)keyPath ofObject: (id) object
change: (NSDictionary *) change context: (void *) context
{
BOOL newValue = [[change objectForKey: NSKeyValueChangeNewKey] boolValue];
}
を理想的には、値が(まあ、それは起こるかもしれない)nil
だったかどうかを確認したいあなたはNSKeyValueObservingOptionNewを指定まず
どのように "ゼロ" を得ることができますか?それはNSObject型の何かのために起こるかもしれませんが、私はそれがBOOLのためにどうなるか見ていませんか? – Adam
「結果がない」と「いいえ」の結果が異なるため、 '[change objectForKey:NSKeyValueChangeNewKey]'の結果が 'nil'だったかどうかをチェックします。 –
@JimDovey - BOOL以外のプロパティのデバッグコンソールで辞書を調べると、文字列のリテラルチェックも必須ではないのだろうか 'new =" " –
pulkitsinghal