2

Objective-C では、子クラスで親のメソッドを呼び出したり呼び出したりしたいと考えています。親が子を割り当てたように、子は親メソッドを呼び出す何かを行います。そのようです:

//in the parent class
childObject *newChild = [[childClass alloc] init];
[newChild doStuff];

//in the child class
-(void)doStuff {
    if (something happened) {
        [parent respond];
    }
}

どうすればこれを行うことができますか?(詳しく教えていただけると助かります)

4

2 に答える 2

7

これにはデリゲートを使用できます。childClassにデリゲートプロトコルとそのプロトコルに準拠するデリゲートプロパティを定義させます。次に、例は次のように変更されます。

// in the parent class
childObject *newChild = [[childClass alloc] init];
newChild.delegate = self;
[newChild doStuff];

// in the child class
-(void)doStuff {
    if (something happened) {
        [self.delegate respond];
    }
}

ここにデリゲートプロトコルを宣言して使用する方法の例があります。2つのViewController間で通信するための単純なデリゲートを設定するにはどうすればよいですか?

于 2011-05-29T18:28:45.773 に答える
4

説明することはあまりありません。

この状況で使用するために、キーワードがあります。これは、それ自体の直接のスーパークラスのメンバーであったものを参照することを除いてsuper、によく似ています。selfself

// in the child class
- (void)doStuff {
  if (something happened) {
    [super respond];
  }
}
于 2011-05-29T18:25:00.627 に答える