2016-02-26 57 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;