错误'无法找到协议声明'

时间:2012-02-24 04:22:20

标签: iphone objective-c ios4 delegates protocols

我提出的问题也与此相同,我尝试使用解决方案,但仍然无法解决我的问题,所以再次问这个问题。

这是我的VCWithProtocol.h

@protocol mydemoDelegate
@optional
-(void)demoDelegateMethodWithSuccess:(BOOL)yesOrNo;
@end

@interface VCWithProtocol : UIViewController 
{ 
   id<mydemoDelegate>mydelegate;
}
@property (nonatomic,assign)id<mydemoDelegate>mydelegate;

VCWithProtocol.m

`@synthesize mydelegate`

这是我的班级,我正在尝试使用我的代表

@class VCWithProtocol;

@interface VCTOUseDelegate : UIViewController <mydemoDelegate> //here is where it shows error with cannot find protocol declaration

VCTOUseDelegate.m

VCWithProtocol *obj = [[VCWithProtocol alloc] init];
obj.mydelegate = self;

我尝试使用导入VCWithProtocol但不能正常工作

4 个答案:

答案 0 :(得分:2)

而不是@class VCWithProtocol;#import VCWithProtocol.h

一些好的做法使用大写字母作为任何类名和协议的第一个字符 例如MyDemoDelegate并避免保留代表使用

@property (nonatomic,assign)id<mydemoDelegate>mydelegate;

答案 1 :(得分:0)

合成你的mydelegate,然后调用

[self mydelegate];

答案 2 :(得分:0)

您需要将#import“VCWithProtocol.h”添加到.m文件的顶部。

答案 3 :(得分:0)

@property (nonatomic,**weak**)id<mydemoDelegate>mydelegate;

委托总是需要弱链接