2014-10-28 19 views
1

我正在ResultDataClassself之間工作。我想觀察xxxResultData的財產,我嘗試了以下(在viewDidLoad)。KVO:郵件已收到但未處理

ResultDataClass *resultData = [ResultDataClass getInstance]; 
[resultData addObserver:self forKeyPath:@"xxx" options:NSKeyValueObservingOptionNew context:NULL]; 

我測試了下面的觀察結果。

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 

    self.showText.text = @"test1"; 

    if([keyPath isEqualToString:@"xxx"]) { 
     self.showText.text = @"test2"; 
    } 
} 

但我得到這個

An -observeValueForKeyPath:ofObject:change:context: message was received but not handled. 
Key path: toCalDouble 
Observed object: <ResultDataClass: 0x1093845e0> 

我GOOGLE了一些,但仍然不能使出來。 任何人都知道我做錯了什麼?

謝謝你,對不起我的英文。

回答

0

其中觀察的resultData解除分配密鑰的視圖控制器之前,停止觀察,或該通知將被髮送到其被解除分配一個實例。

- (void)dealloc { 
    ResultDataClass *resultData = [ResultDataClass getInstance]; 
    [resultData removeObserver:self forKeyPath:@"xxx"] ; 
} 
+0

非常感謝。該錯誤已修復,但在self.showText中沒有顯示任何內容。我錯過了什麼? – user 2014-10-28 10:07:55

+0

@user什麼是'self.showText'?它是UITextField還是UILabel?檢查self.showText是否爲零,如果將self.showText添加到層次結構中,則檢查其框架,確保它是可見的。 – KudoCC 2014-10-28 11:22:42

+0

這是一個在main.storyboard中添加的UITextView。我也用另一種方法使用它。這麼晚纔回復很抱歉。 – user 2014-10-30 04:28:58

相關問題