2015-06-23 3 views
3

в Obj-C, я могу использовать этот метод:быстры ReactiveCocoa combineLatest

RACSignal *signUpActiveSignal = [RACSignal combineLatest:@[validUsernameSignal, validPasswordSignal] 
       reduce:^id(NSNumber*usernameValid, NSNumber *passwordValid){ 
        return @([usernameValid boolValue]&&[passwordValid boolValue]); 
       }]; 

, когда я перевести его на быстры, как это:

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

, как я могу получить параметры

+0

Какие параметры? Пожалуйста, уточните свой вопрос. – bernlim

+0

В быстром использовании вы используете старый RAC2 или ветку быстрой интеграции? – alinoz

ответ

6

Я не мог понять, как использовать это закрытие для 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 
    } 

Очевидно, что вы хотите, чтобы бросить свои объекты к их реальным типам, но я просто использовал Strings здесь в качестве примера. И помните, что вам нужно будет вернуть объединенный объект в конце закрытия map.

+0

Спасибо большое! –

+0

Я использую этот метод, и этот метод не был вызван RACSignal.combineLatest ([phoneNumEdit.rac_textSignal(), passportEdit.rac_textSignal()]). Map { let tuple = $ 0 as! RACTuple let account = tuple.first as! строка – Carl

Смежные вопросы