2015-03-04 5 views
7

ViewModel'imdeki bir özelliği gözlemlemeye çalışıyorum ve daha sonra ReactiveCocoa'yı kullanarak bir etiketi güncelleyin, ancak güncelleme yapmıyor.RACObserve çalışmıyor

İşte ne var:

ViewModel

var amount: NSDecimalNumber 

ViewController

RAC(self.amountLabel, "text") <~ RACObserve(self.viewModel, "amount").map({ 
      (value) -> AnyObject! in 
       let numberFormatter = NSNumberFormatter() 
       numberFormatter.numberStyle = .CurrencyStyle 

       return numberFormatter.stringFromNumber(value as NSDecimalNumber) 
     }) 

kontrol ettim ve ViewModel doğru 'miktar' özelliğini güncelliyor. Burada özlediğim bir şey var mı?

Ben de test için bu çalıştı:

RACObserve(self.viewModel, "amount").subscribeNext { 
    (value) -> Void in 
     println(value) 
} 

ya çalışmaz.

Uygulamam iOS 7'yi desteklediği için ReactiveCocoa 2.4.7 kullanıyorum 7. Swift [1,2] ve bu sürümde makro değiştirmeler arasında herhangi bir uyumsuzluk var mı? [1]

-https://github.com/ashfurrow/Swift-RAC-Macros

[2] - http://blog.scottlogic.com/2014/07/24/mvvm-reactivecocoa-swift.html

+1

arada, [ikinci referans] içinde Ivan görüşü okumak (http://blog.scottlogic.com/2014/07/24/mvvm-reactivecocoa-swift.html). Swift'deki RACObserve, Objective-C'deki RACObserve makrosundan farklıdır ve bu bir sorun olabilir. –

cevap

14

Marka dynamic olarak özelliği ve emin olun görünüşüdür modeli NSObject devralır.

class MyViewModel: NSObject { 
    dynamic var amount: NSDecimalNumber 
} 
+1

Özelliği 'dinamik' olarak işaretlemeyi unuttum. Teşekkürler! – dccarmo