2015-09-24 15 views
5

Tôi có một giao thức trong nhanh chóng:Không loại hoặc giao thức có tên là 'ReformerProtocol' trong .h, nhưng .m hoạt động tốt

import Foundation 

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

Trong C .m Mục tiêu của tôi nếu tôi xác định một phương pháp như:

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

nó hoạt động tốt, nhưng nếu tôi tuyên bố phương pháp này trong file .h:

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

lỗi này là:

No type or protocol named 'ReformerProtocol' 

Không chắc chắn lý do.

+0

Bạn đã nhập tiêu đề '-Swift' chưa? – jtbandes

+0

vâng, tôi nghĩ đó là lý do tại sao tệp .m hoạt động. –

Trả lời

20

Bạn chỉ cần chuyển tiếp giao thức trong tệp .h trước khi sử dụng nó.

@protocol ReformerProtocol; 
+0

Cảm ơn, thật đáng tiếc, tôi đã thử '' '@ class'''. Không chắc chắn lý do tại sao nó hoạt động tốt trong .m tập tin –

+0

Bởi vì bạn đã nhập tiêu đề. – jtbandes

+1

Tôi thêm tệp này vào tệp .pch: #import "Probject-Swift.h" điều này sẽ không cho phép tệp .h biết giao thức tồn tại? –

Các vấn đề liên quan