0

アプリで承認するためのデリゲート パターンに取り組んでいます。

私が以前に見たほとんどのものは、次のようなものを使用しています:

@property (weak) id<Delegate> delegate;

それはそれを言うよりも弱くしますか

@property (weak) UIViewController<Delegate> *delegate;

最初のポインターで任意のポインターを要求していて、2 番目のポインターで型付きポインターを期待していることに気付きました。しかし、デリゲートを UIViewController またはサブクラスにしたいだけです。

違いと長所と短所を説明できる人はいますか?

4

2 に答える 2

3

UIViewControllerしかし、デリゲートをまたはサブクラスにしたいだけです。

<Delegate>次に、2 番目の方法に進みます。最初の方法は、プロトコルに準拠する任意のオブジェクトである可能性があることを示しています。

于 2013-03-28T21:30:22.450 に答える
0

本当の長所も短所もありません。契約が違うだけです。1つは「そのプロトコルに準拠している限り、それがどのクラスであってもかまいません」と言い、もう1つは「プロトコルにも準拠するUIViewControllerのサブクラスが欲しい」と言います。

ここでの唯一のことは、Cocoa の「デリゲート」パターンの考え方は、通常、API のクライアントに、1 つまたは複数の他のコンポーネントの動作をカスタマイズするオブジェクトを作成する方法を提供することです。

このプロパティをView Controllerにしたいので、セマンティックは単なるデリゲート以上のものなので、デリゲートとは呼びませんが、「xxx」がオブジェクトとそのView Controllerの間の実際の機能的関係であるxxxViewControllerと呼びます。

于 2013-03-28T21:38:35.130 に答える