2014-10-09 52 views
1

我試圖做一些簡單的模型綁定 - 使用SWIFTReactiveCocoa簡單的屬性與SWIFT

工作流程視圖模型ReactiveCocoa結合:

我的模型加載(在這種情況下,類別)的一些數據和更新它的loadingCategories狀態。如果不是

然後在我的視圖模型我希望它自身的承載性能的loadingCategories屬性綁定模型

真要是裝,假下面的代碼。它不起作用。唯一的例子我能找到使用信號來UIControls有,我無法弄清楚如何使用綁定財產的例子(沒有控件)

let loading = self.categorySelector.rac_valuesAndChangesForKeyPath("loadingCategories", options: .New, observer: nil) 
loading.subscribeNextAs { (l:Bool) ->() in 
    self.loading = l; 
} 

運行時我剛收到一封「無法識別的選擇實例「錯誤。

+0

什麼是無法識別的選擇,哪些對象接受它?當拋出異常時,這應該在調試器中打印出來。 – 2014-10-27 17:56:34

回答

4

你的觀察參數不能是零,應該對財產的變化發送信號(self.categorySelector)對象

let loading = self.categorySelector.rac_valuesForKeyPath("loadingCategories", observer:self.categorySelector) 
loading.subscribeNextAs { 
    [weak self] (l:Bool) ->() in 
    if (self != nil){ 
     self!.loading = l; 
    } 
} 

確保不指定「無主保留在封閉的自我所有權「否則你將有一個保留週期導致內存泄漏。

最後但並非最不重要請確保您觀察到的屬性annoted動態:

dynamic var loadingCategories:Bool!