我刚开始学习obj-c,并对代表有疑问。我知道在SOF上有很多类似的线索,但我一直在寻找,并没有得到我的问题(也许是因为我是初学者)。这是我的问题:我想使用我自己的委托并从SlaveClass将信息传递给MainClass。在buttonDidClick:action中的SlaveClass中,我声明了等于NIL的委托。即使我不知道我该从哪里开始寻找错误。预先感谢任何类型的建议。这里是我的代码,是指委托:delegate = nil,VC之间传递信息问题
SlaveClass.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)];
}
}
MainClass.h
@interface MainClass : UIViewController <slaveDelegate>
@end
MainClass.m
-(void)transferNameDidClick:(NSString *)text
{
SlaveClass *delegate = [[SlaveClass alloc] init];
[delegate setMyOwnDelegate:self];
[_label setText:text];
NSLog(@"text: %@",text);
}
另外一个小尖给你。不要强烈声明委托。而不是强大的使用弱。 – 2013-03-08 04:44:41