RxSwift在将Observable转换为String时遇到问题。
我了解一个可观察对象是一个序列,我只想要用户名中的最后一个更改。
我将用户名和密码存储为:
let username = BehaviorRelay<String>(value: "")
let password = BehaviorRelay<String>(value: "")
并且以前曾使用过CombineLatest
func loginButtonValid(username: Observable<String>, password: Observable<String>) -> Observable<Bool> {
return Observable.combineLatest(username, password)
{ (username, password) in
return username.count > 0
&& password.count > 0
&& self.validateEmail(enteredEmail: username)
}
}
但是我该如何从用户名中获取最新信息?
我尝试了takelast并仅使用一个参数使用CombineLatest,但似乎都不起作用。
我要执行此操作以验证电子邮件是否有效,而我正在使用的验证电子邮件功能如下(仅供参考):
func validateEmail(enteredEmail:String) -> Bool {
let emailFormat = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
let emailPredicate = NSPredicate(format:"SELF MATCHES %@", emailFormat)
return emailPredicate.evaluate(with: enteredEmail)
}
我的尝试围绕以下想法
func emailValid(username: Observable<String>) -> Observable<Bool> {
return username.takeLast()
{ (lastusername) in
return self.validateEmail(enteredEmail: (lastusername) )
}
}
答案 0 :(得分:1)
如果我理解正确,您想将<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Company.Afis.ImageContainer" publicKeyToken="97cac07b8409e999" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.0.1827" newVersion="2.5.0.1827" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
转换为Observable<String>
,这是Observable<Bool>
方法的工作:
map