2015-09-24 19 views
5

Ho un protocollo a Swift:Nessun tipo o di protocollo chiamato 'ReformerProtocol' in .h, ma .m funziona bene

import Foundation 

@objc protocol ReformerProtocol { 
    func reformDataWithManager(apiManager: FSAPIClient) -> NSDictionary 
} 

Nel mio Objective C .m se mi definisco un metodo come:

- (NSDictionary *)fetchDataWithReformer:(id<ReformerProtocol>)reformer { 
} 

funziona bene, ma se mi dichiaro questo metodo nel file h:

- (NSDictionary *)fetchDataWithReformer:(id<ReformerProtocol>)reformer; 

L'errore è:

No type or protocol named 'ReformerProtocol' 

Non sono sicuro del motivo.

+0

Avete importato l'intestazione '-Swift'? – jtbandes

+0

sì, penso che sia il motivo per cui nel file .m funziona. –

risposta

20

È necessario inoltrare semplicemente il protocollo nel file .h prima di utilizzarlo.

@protocol ReformerProtocol; 
+0

Grazie, è un peccato, ho provato '' '@ class'''. Non sei sicuro del motivo per cui funziona nel file .m –

+0

Perché hai importato l'intestazione. – jtbandes

+1

Aggiungo questo nel file .pch: #import "Probject-Swift.h" questo non consentirà .h il file sa che il protocollo esiste? –

Problemi correlati