【发布时间】:2015-11-05 15:54:21
【问题描述】:
我有一个“DataManager”单例类,它使用 RAC3 处理我的应用程序的状态。它包含多个MutablePropertys,我在不同位置开始并观察它们。
我想让我的 DataManager 启动或创建一个信号,我可以使用我的 DataManager 单例在任何视图控制器中观察到,使用 observe() 而不是 start() 等。但我被卡住了,不知道如何初始化我的 DataManager 中的这个信号。我试过定义像
let documentUpdateSignal: Signal<Int,NSError>
let remainingDocuments = MutableProperty<Int>(0)
然后尝试在初始化时使用我的可变属性的生产者启动它 像
override init() {
documentUpdateSignal = remainingDocuments.producer.start(next: {
docs in
println("doc count \(docs)")
})
super.init()
}
但这不起作用,因为它不返回Signal<Int,NSError>
我还尝试创建一个方法,该方法返回一个不太幸运的信号,而不是一个属性......即使它看起来不太正确。
func updateSignal() -> Signal<Int, NSError> {
return remainingDocuments.producer
}
很想帮忙 非常感谢!
【问题讨论】:
-
我感觉这就是
startWithSignal发挥作用的地方,尽管我很难找到如何使用此方法的示例。
标签: swift reactive-cocoa reactive-cocoa-3