我剛開始學習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