私はobj-cを学び始めたばかりで、デリゲートについて質問があります。SOFには似たようなスレッドがたくさんあることは知っていますが、私は探していたのですが、実際には問題が発生しませんでした(おそらく私が初心者であるためです)。これが私の問題です。自分のデリゲートを使用して、SlaveClassからMainClassに情報を転送したいと思います。buttonDidClick:アクションのSlaveClassで、NILに等しいデリゲートを宣言します。どこからミスを探し始めたらいいのかわからない。どんな種類のアドバイスも事前に感謝します。デリゲートを参照する私のコードは次のとおりです。
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);
}