0

たとえば、AビューとBビューがあり、AからBに値が渡されています。

B.m、私は書いた:

A *av = [[A alloc] init];
[av setDelegate:self]

私が書いたのと同じですかA.m

B *bv = [[B alloc] init];
[self setDelegate:bv];

この「setDelegate」はどこに置くべきですか?でviewDidLoad?コンパイラはエラーを生成しませんでしたが、値の受け渡しは成功しませんでした。誰かが私にいくつかのヒントを教えてもらえますか?ありがとう

4

1 に答える 1

1

通常、デリゲートを使用するポイントは、デリゲート オブジェクト (avこの場合) が外部オブジェクトから何らかの助けを必要とすることです。で行うように、そのオブジェクトが独自のデリゲートを設定するとbv、外部オブジェクトを持つ利点が無効になります。つまり、デリゲートとしてAのインスタンスが必要であることがわかっている場合は、コードをBロールバックして、デリゲート ビジネス全体をスキップすることもできます。BA

Aとはいえ、デフォルトでデリゲートとして使用することは可能Bですが、特定の動作を変更するために、他のクラスのインスタンスをデリゲートとして設定することは可能です。それがあなたの目標である場合は、おそらくそれの(または他のイニシャライザ)で、デリゲートとしてAのインスタンスをB早い段階で設定しているでしょう。-init

于 2012-09-24T04:00:08.363 に答える