Objective-Cでカスタムデリゲートを使用する方法 質問する

Objective-Cでカスタムデリゲートを使用する方法 質問する

Objective-C でのデリゲート メソッドの使用法について知る必要があります。正しい情報源を教えていただけますか?

ベストアンサー1

クラスのデリゲート プロトコルを宣言する必要があります。クラスのデリゲート プロトコルとインターフェイスの例はFoo次のようになります。

@class Foo;
@protocol FooDelegate <NSObject>
@optional
- (BOOL)foo:(Foo *)foo willDoSomethingAnimated:(BOOL)flag;
- (void)foo:(Foo *)foo didDoSomethingAnimated:(BOOL)flag;
@end

@interface Foo : NSObject {
     NSString *bar;
     id <FooDelegate> delegate;
}

@property (nonatomic, retain) NSString *bar;
@property (nonatomic, assign) id <FooDelegate> delegate;

- (void)someAction;

@end

でプロパティを合成することを忘れないでください@implementation

このコードでは、FooDelegate というプロトコルを宣言しています。このプロトコルに準拠するクラスは、 のように宣言されます@interface SomeClass : SuperClass <FooDelegate> {}。このクラスはプロトコル に準拠しているためFooDelegate、 のメソッドを実装できるようになりましたFooDelegate(これらの実装を要求するには、@requiredの代わりにを使用します@optional)。最後のステップは、Fooに準拠するクラスでオブジェクトをインスタンス化しFooDelegate、このFooオブジェクトの delegate プロパティを設定することです。

Foo *obj = [[Foo alloc] init];
[obj setDelegate:self];

これで、クラスはFooデリゲートが正しく設定されたオブジェクトからメッセージを受信する準備が整いました。

おすすめ記事