0

我收到一个错误:

未找到协议声明

我找不到是什么原因。现在我正在使用ARC。我怀疑这个问题是由于这个。这是我用于协议声明的代码

//这是我们声明Delegate的第一页

。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;     
}
4

4 回答 4

0

Try like it.

 @protocol ImageDelegate<NSObject>

    @optional

    -(void)ImageSelected:(UIImage *)ImageName;

    @end

And also add this property.

@property(nonatomic,assign)id<ImageDelegate> delegate;

I think it will be helpful to you.

于 2012-06-22T12:25:33.867 回答
0

这可能是一个导入循环。您是否为使用协议的位置#import 正确的文件?你是在协议文件中导入那个文件吗?如果是这样,那么您有一个导入循环。在协议的标头中使用前向声明,这应该可以解决它。(@班级)

于 2012-06-22T12:15:34.177 回答
0

您正在放置@interface一个 .m 文件,您是要创建一个私有的@interface吗?在IBOutlet那里宣布?


看到你的编辑后,我猜你的 ImageEnlarge 类的 .h 上只缺少一个导入。

于 2012-06-22T11:57:27.757 回答
0

我在您的代码中看到了几个(可能的)问题。

@property(nonatomic, strong)id<ImageDelegate> delegate;

代表应该很弱。GetAddedMovieList 现在确实拥有委托,因此不应影响其生命周期。

@synthesize delegate = delegate;

默认情况下,@synth 最近使用 ivar_ 或 _ivar。顺便说一句,使用最新的 LLVM @synth 不再需要,也不需要 ivars。

@synthesize 在 @implementation 之外?

你检查过你的#imports 吗?

于 2012-06-22T12:05:40.230 回答