0

特定のボタンが押されたときに 2 つの異なるエンティティにデータを追加したいのですが、デリゲートを使用していますが、その方法がわかりません。

@protocol AddContentViewControllerDelegate <NSObject>

- (void)AddContentViewControllerDidCancel:(AddContentViewController *)controller;
- (void)AddContentViewController:(AddContentViewController *)controller didAddPlayer:(FailedBankInfo *)info;
- (void)AddContentViewController:(AddContentViewController *)controller didAddPlayer:(FailedBankDetails *)details;
@end
4

2 に答える 2

3

プロトコルを宣言するときはいつでも、同じもののデリゲートを作成する必要があります

id <AddContentViewControllerDelegate > delegateAddContent

プロパティを作成し、.mファイルに合成します

@property (nonatomic) id delegateAddContent

.mで

@synthesize delegateAddContent

ここで、.mファイルメソッドを介してすでに定義したプロトコルメソッドを介してデータを送信する必要があります。

[self delegateAddContent]AddContentViewControllerDidCancel:(AddContentViewController *)controller];

データを送信したいクラスがあるかもしれません。そのクラスはプロトコルに準拠している必要があります。例:->

@interface ClassName : SuperClass<AddContentViewControllerDelegate >

次に、プロトコルのメソッドを実装する必要があります。/例->-

 (void)AddContentViewControllerDidCancel:(AddContentViewController *)controller
{
//the data will be received in the parameters of the method of the protocol implemented.here in controller
}

また、プロトコルに準拠するクラスは、プロトコルの所有権を取得する必要があります

yourclassconformingprotocol.delegateController=self。

@requiredでプロトコルに必要なメソッドを定義し、@optionalでオプションを定義することもできます。

プロトコルに関するAppleのドキュメントを参照してください

于 2012-05-12T13:04:39.857 に答える
2

パラメーターの型だけが異なるものとして選択された 2 つのメソッド名を持つことはできません。コンパイラに関する限り、プロトコルの 2 番目と 3 番目のメソッドの名前は両方ともAddContentViewController:didAddPlayer:.

于 2012-05-12T13:11:49.150 に答える