2016-02-26 24 views
5

起初沒有類型或協議錯誤,在LoadingVC.h我聲明一個協議:而協議被導入

@protocol VideoWorker <NSObject> 

@required 

@property (nonatomic) float progress; 
@property (nonatomic) BOOL done; 

-(void)beginWorking; 

@end 

@interface LoadingVC : UIViewController <UIAlertViewDelegate> 
... 
@end 
在BlurWorkerGPU.h

然後

... 
#import "LoadingVC.h" 

@interface BlurWorkerGPU : NSObject <VideoWorker> { 
... 
} 
- (void)beginWorking; 
@property(nonatomic)float progress; 
@property(nonatomic)BOOL done; 
... 
@end 

然而,LLVM說

「No type or protocol named'VideoWorker'」

這是很奇怪的,因爲我導入了協議定義的頭部。任何線索?

回答

13

在使用它之前,您應該在.h文件中轉發聲明協議。在BlurWorkerGPU.h

@protocol VideoWorker; 
0

支票的頂部將這個是否要導入 「BlurWorkerGPU.h」 中的 「LoadingVC.h」

0

可能的解決方案是

  • 進口協議

@import YOURPROTOCOLNAME

  • 進口類,其中協議被聲明

#import "YOURCLASSWHICHDECLAREDPROTOCOL.h"

  • 使用@class導入類

@class YOURCLASSWHICHDECLAREDPROTOCOL;