iphone成为个人代表
我有这个问题。。。。 在我的viewcontroller.h中,我对类的定义如下:iphone成为个人代表,iphone,objective-c,class,delegates,Iphone,Objective C,Class,Delegates,我有这个问题。。。。 在我的viewcontroller.h中,我对类的定义如下: myClass* iR; MyViewController *viewController = [[MyViewController alloc] init]; self.delegate = viewController; if ([self.delegate respondsToSelector:@selector(didLogon:)]) { [self.delegate didLogon:YE
myClass* iR;
MyViewController *viewController = [[MyViewController alloc] init];
self.delegate = viewController;
if ([self.delegate respondsToSelector:@selector(didLogon:)]) {
[self.delegate didLogon:YES];
}
及之后:
@property (nonatomic,retain) IBOutlet myClass* iR;
@property (nonatomic, assign) id<myClassDelegate> delegate;
我在myClass.h中添加了以下内容:
@protocol myClassDelegate <NSObject>
-(void) didLogon:(bool)isLogged;
@end
[self.delegate didLogon:true];
进入myviewcontroller.h:
<myClassDelegate>
但是程序进入self.delegate登录,但进入myviewcontroller.m没有进入。。。你知道为什么吗?你在哪里分配代表?你需要这样的东西:
myClass* iR;
MyViewController *viewController = [[MyViewController alloc] init];
self.delegate = viewController;
if ([self.delegate respondsToSelector:@selector(didLogon:)]) {
[self.delegate didLogon:YES];
}
为了安全起见,在调用委托方法时,请按如下方式调用它们:
myClass* iR;
MyViewController *viewController = [[MyViewController alloc] init];
self.delegate = viewController;
if ([self.delegate respondsToSelector:@selector(didLogon:)]) {
[self.delegate didLogon:YES];
}
这样,如果委托不支持该方法,则当程序无法识别该选择器时,程序不会崩溃