我刚刚开始使用delegates
。Objective C - 无法设置委托错误 - 找不到'myNSObjectClassDelegate'的协议声明
由于某种原因,我无法做到这一点,我看到错误。
我试着做一个新项目的下一个代码,它是好的,但是当我将这段代码移动到我的主项目时,我遇到了一些问题。
我NSObject
.h
类:
@protocol myNSObjectClassDelegate <NSObject>
@required
-(void)doSomething;
@end
@interface GeneralMethods : NSObject
@property (nonatomic,strong) id<myNSObjectClassDelegate> delegate;
@end
我NSObject
类.m
:
@synthesize delegate;
-(void)SomeMethod {
if ([delegate respondsToSelector:@selector(doSomething)]) {
[delegate doSomething];
}
}
我UIViewController
.h
#import "GeneralMethods.h"
@interface view : UIViewController<UIGestureRecognizerDelegate,
UINavigationControllerDelegate,
UIImagePickerControllerDelegate,
myNSObjectClassDelegate>
的错误是在这里.h
- Cannot find protocol declaration for 'myNSObjectClassDelegate'
我UIViewController
.m
-(void)doSomething{
}
我在做什么错?
编辑:我弄明白: 出于某种原因,在我NSObject
类,如果我移动在此之后,#import myUIViewcontroller
:
@protocol myNSObjectClassDelegate <NSObject>
@required
-(void)doSomething;
@end
的问题就迎刃而解了。
与您的问题无关,但您最好使您的班级和协议名称大写。这是一个通用的约定 – 2014-10-09 16:02:57
好的谢谢:) – 2014-10-09 16:06:05
一般来说,你不应该维护与委托协议的“强”关系。 – 2014-10-09 16:23:56