2016-02-04 16 views
10

Sto cercando di imparare ReactiveCocoa e ho difficoltà a iniziare. Continuo a picchiare come se le API e le esercitazioni sembrassero obsolete rapidamente. Forse ho l'impressione sbagliata.Ottenere "l'uso del tipo non dichiarato 'NoError'" con ReactiveCocoa

Solo cercando di seguire this Non mi sembra di avere NoError.

enter image description here

Va importati in modo corretto, dal momento che ho accesso a Signal, rac_textSignal ecc, ma io non so perché NoError non è disponibile.

Loro documentation menziona NoError ma che porta a 404.

Questo transition to RAC4 menziona anche NoError. Perché il NoError non è dichiarato? Sto usando ReactiveCocoa 4.0.1.

Modifica: ho appena aggiunto public enum NoError : ErrorType {} all'inizio del file e ora funziona. Non sono sicuro se questa sia una soluzione adeguata al problema. Non è menzionato nelle guide e nei tutorial che dovrei estendere io stesso allo ErrorType.

risposta

19

Il cacao reattiva nativo NoError è stato rimosso in 4.0.1 a favore di antitypicals implementazione in Result (aggiunge NoError-Result, vedere this). Vedi per es. numero # 2704

Possiamo vedere questo esplicitamente utilizzato nei file di origine, ad esempio,

Quindi, è probabilmente necessario includere (antitypicals) Result ogni volta che si intende utilizzare NoError. Una correzione suggerito nel thread questione è

public typealias NoError = Result.NoError 
+1

Grazie, le persone sembrano lamentarsi di rompere i cambiamenti, non l'avrei capito. 'import enum Result.NoError' e quindi' typealias' l'errore funziona per me. – Filuren

+0

@Filuren Felice di aiutare. Dal momento che funziona bene per te, probabilmente non ne hai bisogno, ma terrei d'occhio quel problema aperto per ogni evenienza. – dfri

+0

È vero, questo era tecnicamente un cambiamento irrazionale che non avevamo previsto. – NachoSoto

0

Se si aggiunge "Risultati importazione" alla parte superiore della pagina sopra la vostra classe, NoError non sarà più un tipo non dichiarato!