Maxim Maxim - 6 months ago 136
iOS Question

No type or protocol error while protocol is imported

At first, in LoadingVC.h I declare a protocol:

@protocol VideoWorker <NSObject>

@required

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

-(void)beginWorking;

@end

@interface LoadingVC : UIViewController <UIAlertViewDelegate>
...
@end


then in BlurWorkerGPU.h

...
#import "LoadingVC.h"

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


However, llvm says that


"No type or protocol named 'VideoWorker'"


which is strange since I am importing the header where the protocol is defined. Any clues?

lcl lcl
Answer

You should forward declare protocol in .h files before you use it. Put this in the top of BlurWorkerGPU.h

@protocol VideoWorker;
Comments