0
私はSwift 3に書き込まなかったSwift 2.2アプリを移行しようとしています.RACコールがいくつか実行されるまで、すべてうまくいっていました。私はReactiveCocoaに慣れていないので、これはさらに困難です。Swift 3のrac_textSignal
/**
* Method name: Enable Login Button
* Description: Enable or disable login button based on
* username and password entry
* Parameters: None
*/
func enableLoginButton() -> Void {
self.btnLogin.isEnabled = false
let serviceUrlSignal = self.txtServiceUrl.rac_textSignal()
.toSignalAssumingHot()
.assumeNoErrors()
.map { text in text as! String }
let usernameSignal = self.txtFieldUsername.rac_textSignal()
.toSignalAssumingHot()
.assumeNoErrors()
.map { text in text as! String }
let userNameCharSignal = usernameSignal.map { $0.characters.count }
let passwordSignal = self.txtFieldPassword.rac_textSignal()
.toSignalAssumingHot()
.assumeNoErrors()
.map { text in text as! String }
let passwordCharSignal = passwordSignal.map { $0.characters.count }
userNameCharSignal.combineLatestWith(passwordCharSignal)
.map
{
charArray in charArray.0 > 0 && charArray.1 > 0
}
.observe { event in
if let buttonEnabled = event.value {
self.btnLogin.enabled = buttonEnabled
}
}
viewModel.username <~ usernameSignal
viewModel.password <~ passwordSignal
viewModel.serviceUrl <~ serviceUrlSignal
btnLogin.rac_signalForControlEvents(.TouchUpInside)
.subscribeNext{
button in
print("Authenticate Click!")
}
}
私が理解するところでは、rac_textSignalはReactiveSwiftには存在しません。 ReactiveObjCをインストールする必要がありますか、またはこの機能を置き換えるために使用できる迅速なアプローチはありますか?ありがとう。
で
のチャンク全体を置き換えることができますhttps://でgithubの.com/ReactiveCocoa/ReactiveCocoa/issues/3197 – Pierce