2016-05-31 5 views
0

Ich möchte die Anzahl der Tabellenansicht Zelle überwachen und sobald es Null wird (löschen Sie alle Zeilen) meine Schaltfläche würde sofort deaktiviert werden, sonst (eine neue Zeile einfügen) wird es aktiviert . Und ich möchte dies mit ReactiveCocoa tun.Wie beobachtet man Eigenschaften oder Instanzvariablen mit ReactiveCocoa

Ich bin ein newbee mit RAC und was habe ich versucht, wie das ist:

let count = NSNumber(integer: self.records!.count) 
    let countSignal: RACSignal = count.rac_willDeallocSignal(); 
    countSignal.subscribeNext { (AnyObject) in 
     NSLog("here i am") 
     self.navigationItem.rightBarButtonItem?.enabled = AnyObject.integerValue > 0 ? true : false; 
    } 

Aber es hat nicht funktioniert.

Bisher weiß ich, wie Signale zu erzeugen und die Änderung mit einigen Textfeldern überwachen Ursache es so einfach kommt:

self.myTextField.rac_textSignal 

Aber was ist, wenn ich zu Produktsignale wollen oder die Änderung der Eigenschaften oder Variablen überwachen also könnte ich die Signale abonnieren und weiterleiten und aufgrund ihrer Änderungen Callbacks durchführen?

Antwort

0

Sie werden ein Wert geändert Signal erhalten, indem der Wert der Eigenschaft rac_valuesForKeyPath Methode Beobachter mit, hier ist ein Tutorials: SWIFT AND REACTIVECOCOA, in Objective-C gibt es Makro RACObserver(target,key path)

+0

Danke, aber das scheint nicht mein Problem hier zu lösen , da ich 'self.recordSignal = self.RACObserve (self, keyPath:" records ")' geschrieben habe und eine 'RACSignal'-Instanz erhalten habe und sie dann mit dem nächsten Block subscribe: 'self.recordSignal! .subscribeNext {(records) in self.navigationItem.rightBarButtonItem? .enabled = records.count> 0? true: false } 'in' viewDidLoad', aber wenn ich die letzte Zeile gelöscht habe, ist die Schaltfläche weiterhin aktiviert. – Boris

Verwandte Themen