我刚开始学习 obj-c,我对代表有疑问。我知道在 SOF 上有很多类似的线程,但我一直在寻找并且真的没有得到我的问题(可能是因为我是初学者)。这是我的问题:我想使用自己的委托并将信息从 SlaveClass 传输到 MainClass。在 buttonDidClick: 动作中的 SlaveClass 中,我声明委托等于 NIL。即使我不知道我应该从哪里开始寻找错误。提前感谢任何类型的建议。这是我引用委托的代码:
从类.h
@protocol slaveDelegate <NSObject> -(void)transferNameDidClick:(NSString *)text; @end // -------------------------------------------------------------------------------- @interface SlaveClass : UIViewController @property (nonatomic, strong) id <slaveDelegate> myOwnDelegate; @end
SlaveClass.m(这里显示为 NIL)
-(void)buttonDidClick:(id)sender
{
if ([_myOwnDelegate respondsToSelector:@selector(transferNameDidClick:)])
{
[_myOwnDelegate transferNameDidClick:(_textField.text)];
}
}
主类.h
@interface MainClass : UIViewController <slaveDelegate>
@end
主类.m
-(void)transferNameDidClick:(NSString *)text
{
SlaveClass *delegate = [[SlaveClass alloc] init];
[delegate setMyOwnDelegate:self];
[_label setText:text];
NSLog(@"text: %@",text);
}