Fra*_*hou 3 reactive-cocoa swift
在obj-c中,我可以使用这个方法:
RACSignal *signUpActiveSignal = [RACSignal combineLatest:@[validUsernameSignal, validPasswordSignal]
reduce:^id(NSNumber*usernameValid, NSNumber *passwordValid){
return @([usernameValid boolValue]&&[passwordValid boolValue]);
}];
Run Code Online (Sandbox Code Playgroud)
当我把它翻译成swift时,像这样:
RACSignal.combineLatest([accountSignal, passwordSignal]) { () -> AnyObject! in
// arguments
return true
}.subscribeNext { (reduceResult: AnyObject!) -> Void in
KMLog("\(reduceResult)")
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得参数
我无法弄清楚如何使用该闭包combineLatest,但你可以使用map.输入是一个RACTuple对象.您可以从输入信号中获取对象,如下所示:
RACSignal.combineLatest([accountSignal, passwordSignal]).map {
let tuple = $0 as! RACTuple
let account = tuple.first as! String
let password = tuple.second as! String
// your code here
}
Run Code Online (Sandbox Code Playgroud)
显然你会想要将你的对象转换为它们的实际类型,但我只是在这里使用Strings作为例子.请记住,您必须在map关闭结束时返回组合对象.
| 归档时间: |
|
| 查看次数: |
2018 次 |
| 最近记录: |