我提出的问题也与此相同,我尝试使用解决方案,但仍然无法解决我的问题,所以再次问这个问题。
这是我的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
但不能正常工作
答案 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;
委托总是需要弱链接