首先,在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说
&#34;没有命名的类型或协议&#39; VideoWorker&#39;&#34;
这很奇怪,因为我导入了定义协议的头。有线索吗?
答案 0 :(得分:18)
在使用之前,您应该在.h文件中转发声明协议。把它放在BlurWorkerGPU.h
@protocol VideoWorker;
答案 1 :(得分:1)
检查您是否在“LoadingVC.h”中导入“BlurWorkerGPU.h”
答案 2 :(得分:0)
可能的解决方案
@import 的 YOURPROTOCOLNAME 强>
#import "YOURCLASSWHICHDECLAREDPROTOCOL.h"
@class YOURCLASSWHICHDECLAREDPROTOCOL;