2017-07-10 1 views
3

Nous avons utilisé ReSwift dans quelques projets iOS et nous l'avons adoré. Dans 4.0, ils ont ajouté la possibilité de sous-sélectionner des parties de l'état et skipRepeats, soit manuellement ou en utilisant un magasin qui est équivalent. Subselecting un magasin est simple:Comment définir `newState` dans ReSwift avec plusieurs sous-sélections?

store.subscribe(subscriber) { 
    $0.select { 
    $0.testValue 
    } 
} 

Ensuite, vous définissez newState avec:

func newState(state:TestValue) { 
    // handle new state 
} 

Je suis un peu coincé sur la façon de définir newState lors du passage de plusieurs paramètres via un tuple:

store.subscribe(subscriber) { 
    $0.select { 
    ($0.testValue, $0.otherState?.name) 
    } 
} 

Je passe le tuple mais en voyant les erreurs Type 'MainViewController' does not conform to protocol 'StoreSubscriber' et Type of expression is ambiguous without more context:

func newState((testState: TestValue, name: String)) { 
    // handle new state 
} 

Que fais-je incorrectement ici?

Répondre

3

Bien sûr, c'était une simple erreur de ma part. J'avais besoin de nommer le tuple que je passais, dans cet exemple comme state

func newState(state: (testState: TestValue, name: String)) { 
    // handle new state 
} 
+0

Je voyais la même chose! Beau compagnon de capture: +1: – topLayoutGuide