簡體   English   中英

導入協議時沒有類型或協議錯誤

[英]No type or protocol error while protocol is imported

首先,在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說

“沒有名為'VideoWorker'的類型或協議”

這很奇怪,因為我正在導入定義協議的標頭。 有線索嗎?

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

@protocol VideoWorker;

檢查是否在“LoadingVC.h”中導入“BlurWorkerGPU.h”

可能的解決方案

  • 導入協議

@import YOURPROTOCOLNAME

  • import聲明協議的類

#import "YOURCLASSWHICHDECLAREDPROTOCOL.h"

  • 使用@Class導入類

@class YOURCLASSWHICHDECLAREDPROTOCOL;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM