【发布时间】:2015-06-26 22:09:55
【问题描述】:
我对 ReactiveCocoa 3 和 Swift 还很陌生,并且有以下代码示例。我想将map函数返回的信号映射到最后在start函数中接收JSON值。
目前我正在通过Signal<JSON, NSError>,我在observe 内部start 函数。有没有更好的解决方案?
import Foundation
import ReactiveCocoa
import SwiftyJSON
class SearchViewModel {
let results = MutableProperty<[MyModel]>([])
let searchText = MutableProperty<String>("")
init() {
searchText.producer
|> map { keyword -> Signal<JSON, NSError> in Api().get("search/\(keyword)") }
|> start(
next: { signal in
signal
|> observe(
next: { jsonArray in
let models = jsonArray.arrayValue.map(modelAdapter)
self.results.put(models)
}
)
}
)
}
}
更新:
原来问题出在我对 ReactiveCocoa 的理解上。请参阅下面的答案。
【问题讨论】:
标签: ios swift reactive-cocoa frp