【问题标题】:How to observe properties or instance variables with ReactiveCocoa如何使用 ReactiveCocoa 观察属性或实例变量
【发布时间】:2016-05-31 02:07:19
【问题描述】:

我想监控 tableview 单元格的数量,一旦它变为零(删除所有行),我的按钮将立即被禁用,否则(插入新行)它将被启用。 我想用ReactiveCocoa 来做这件事。

我是 RAC 的新手,我尝试过的是这样的:

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;
    }

但它没有用。

到目前为止,我知道如何生成信号并使用一些文本字段监控更改,因为它就像这样:

self.myTextField.rac_textSignal

但是,如果我想生成信号或监控属性或变量的变化,以便订阅和传递信号并根据它们的变化进行回调,该怎么办?

【问题讨论】:

    标签: ios swift reactive-cocoa


    【解决方案1】:

    使用rac_valuesForKeyPath方法观察属性值,你会得到一个值改变的信号,这里有一个教程:SWIFT AND REACTIVECOCOA,在Objective-C中有宏RACObserver(target,key path)

    【讨论】:

    • 谢谢,但这似乎不能解决我的问题,因为我编码了self.recordSignal = self.RACObserve(self, keyPath: "records") 并获得了一个RACSignal 实例,然后使用下一个块订阅它:self.recordSignal!.subscribeNext { (records) in self.navigationItem.rightBarButtonItem?.enabled = records.count > 0 ? true : false } in viewDidLoad,但是当我删除最后一行时,该按钮仍处于启用状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2018-10-28
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    相关资源
    最近更新 更多