2012-08-10 47 views
0

我一直在努力與志願的設置了幾個小時,我設法得到它的工作:志願:顯然,同樣的「有效」的keyPath產生不同的結果

這工作:

[self addObserver:self forKeyPath:@"session.loginState" options:0 context:nil]; 

這不:

[self addObserver:self.session forKeyPath:@"loginState" options:0 context:nil]; 

請注意這樣self.session是從來沒有nilself.session懶洋洋地創建一個空的Session對象。然而,似乎是:

  1. 的的keyPath的selfsession.loginState是不一樣的...
  2. 的的keyPath的self.sessionloginState從志願的角度

爲什麼會出現這種情況?

回答

3

你有你的觀察者,並觀察倒退。嘗試

[self.session addObserver:self forKeyPath:@"loginState" options:0 context:nil]; 
+0

愚蠢的錯誤,好像我錯過了forrest的樹木,或者我自己的案例中的自我:-) – Besi 2012-08-10 21:06:12

1

有了這個代碼:

[self addObserver:self forKeyPath:@"session.loginState" options:0 context:nil]; 

你加入自我爲self的的keyPath session.loginState的觀察者來說,這是有效self.session.loginState

在此代碼:

[self addObserver:self.session forKeyPath:@"loginState" options:0 context:nil]; 

你加入self.sessionself的的keyPath loginState的觀察者來說,這是有效self.loginState

相關問題