[英]Error in protocol declaration
我收到以下錯誤消息:
找不到協議聲明
我不知道是什么原因。 現在,我正在使用ARC。 我懷疑這個問題是由於這個原因。 這是我用於協議聲明的代碼
//這是我們聲明代表的第一頁
。H
@protocol ImageDelegate
@optional
-(void)ImageSelected:(UIImage *)ImageName;
@end
@interface GetAddedMovieList : UIViewController<UITableViewDataSource,UITableViewDelegate>{
id<ImageDelegate> delegate;
}
@property(nonatomic, strong)id<ImageDelegate> delegate;
@end
.m
@synthesize委托;
//這是我嘗試設置委托的頁面。 在這里,我得到了錯誤。
@interface ImageEnlarge : UIViewController<ImageDelegate>{
IBOutlet UIImageView *imgEnlarge;
NSString *stgImageName;
}
您正在將@interface
放在.m文件上,是否要創建私有@interface
? 在那里聲明了IBOutlet
嗎?
看到您的編輯后,我猜想您的ImageEnlarge類的.h上僅缺少導入。
我在您的代碼中看到了幾個(可能)問題。
@property(nonatomic, strong)id<ImageDelegate> delegate;
代表應該軟弱。 現在,GetAddedMovieList確實以任何方式擁有委托,因此不應對委托的生命周期產生影響。
@synthesize delegate = delegate;
默認情況下,@ synth最近使用ivar_或_ivar。 有了最新的LLVM,@ synth不再是必需的,兩個ivars都不再需要。
@implementation之外的@synthesize嗎?
您檢查了#imports嗎?
這可能是一個導入循環。 您是否在使用協議的地方導入了正確的文件? 並且您正在將該文件導入協議文件中嗎? 如果是這樣,那么您將有一個導入循環。 在協議的標頭中使用前向聲明,這應該可以解決它。 (@類)
試試吧。
@protocol ImageDelegate<NSObject>
@optional
-(void)ImageSelected:(UIImage *)ImageName;
@end
並添加此屬性。
@property(nonatomic,assign)id<ImageDelegate> delegate;
我認為這將對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.