Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 反应迅速_Swift_Reactive Cocoa - Fatal编程技术网

Swift 反应迅速

Swift 反应迅速,swift,reactive-cocoa,Swift,Reactive Cocoa,在obj-c中,我可以使用以下方法: RACSignal *signUpActiveSignal = [RACSignal combineLatest:@[validUsernameSignal, validPasswordSignal] reduce:^id(NSNumber*usernameValid, NSNumber *passwordValid){ return @([usernameValid boolValue]&

在obj-c中,我可以使用以下方法:

RACSignal *signUpActiveSignal = [RACSignal combineLatest:@[validUsernameSignal, validPasswordSignal]
                reduce:^id(NSNumber*usernameValid, NSNumber *passwordValid){
                  return @([usernameValid boolValue]&&[passwordValid boolValue]);
                }];
当我把它翻译成swift时,就像这样:

RACSignal.combineLatest([accountSignal, passwordSignal]) { () -> AnyObject! in
        // arguments
        return true
        }.subscribeNext { (reduceResult: AnyObject!) -> Void in
        KMLog("\(reduceResult)")
    }
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
    }

如何获取参数

我还不知道如何将闭包用于
组合测试
,但您可以使用
映射
。输入是一个
RACTuple
对象。您可以从如下输入信号中获取对象:

RACSignal.combineLatest([accountSignal, passwordSignal]) { () -> AnyObject! in
        // arguments
        return true
        }.subscribeNext { (reduceResult: AnyObject!) -> Void in
        KMLog("\(reduceResult)")
    }
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
    }

很明显,您希望将对象强制转换为它们的实际类型,但我只是在这里使用字符串作为示例。请记住,您必须在
map
闭包的末尾返回组合对象。

哪些参数?请详细说明您在swift中的问题您使用旧的RAC2还是swift集成开发分支?我使用此方法,但此方法未被调用RACSignal.CombineTest([phoneNumEdit.rac_textSignal(),passportEdit.rac_textSignal()])。map{let tuple=$0 as!RACTuple let account=tuple.first as!String