目前我正在努力让RxSwift工作 . 我想创建一个自定义的Observable . 但我认为我做错了什么 .
我已经将我做的事情提炼到这个最小的样本:
import Foundation
import RxSwift
class Example
{
let exampleObservable : Observable<String> = Observable.create { (observer) in
observer.on(.Next("hello"))
observer.on(.Completed)
return AnonymousDisposable { }
}
let exampleObserver : AnyObserver<String>?
func run()
{
self.exampleObserver = exampleObservable.subscribeNext({ (text) -> Void in
print(text)
})
}
}
let ex = Example()
ex.run()
它是否正确?在run方法中,subscribeNext方法由XCode自动完成 .
但是当我运行它时,我得到以下编译错误:
Cannot Invoke 'substribeNext' with an argument list of type ((String) -> Void)
5 回答
您可以使用
RxExamples
来更好地理解RxSwift
. 我在RxSwift
repo找到了它 . 它帮助我理解了RxSwift .好的,让我们尝试使用
Alamofire
和RxSwift
发送简单请求 . 首先我们编写请求函数:getApi()
方法使用Alamofire
发送请求并从服务器获取响应 . 我使用RxSwift
观察者来发送成功或错误消息 . 其次我们必须调用这个函数 . 您可以使用rx_tap
作为按钮:这是我的简单例子 . 希望这对你有所帮助 .
ReactiveX
是一个巨大的机会 . 祝你好运RxSwift
!Swift 3 略有改变:
我建议建一个游乐场 . CocoaPods游乐场插件提供了设置游乐场的简便方法
这使得它可以快速轻松地使用RxSwift,并且可以更快地尝试一些东西 . 根据我的个人经验,这是改善理解的最佳方式
尽可能使用traits是一个好主意,我建议你看看RxSwift文档和Traits文档Here.
例如,当您创建API调用方法时,它通常会返回
Single
Trait .然后可以做这样的事情:
这是您可以在不同情况下使用不同方法的许多其他特征 .
使用create Observable的简单URLSession示例