読者です 読者をやめる 読者になる 読者になる

iOSコピペコーディング

できることは知ってるけど、コードってどうやって書くんだっけ?をコピペで解決

Delegateの実装

Delegateを実装したいときは、実装したいクラスに下記をコピペ。

Delegateを実装したいけど詳しいことはわからない。
そんなときは、呪文だと思って下記ルールに従って実装すればサクッと実装完了
動作を覚えてから、その意味を知るのも悪くはないと思う。

「CustomViewController」となっている部分は、実装したクラス名に置き換える。

 

Delegateの基本実装 .h

#import <UIKit/UIKit.h>

//▼この行追加

@protocol CustomViewControllerDelegate;

@interface CustomViewController : UIViewController

//▼この行追加

@property (nonatomic, assign) id < CustomViewControllerDelegate > delegate;

 

//公開メソッド、プロパティ実装場所

 

@end

 

//▼最終行まで追加

@protocol CustomViewControllerDelegate <NSObject>

@required

//必須DelagateMethods Delegateを受ける親クラスで実装しないと警告が出る。

- (void)CustomVC_ReqiredDelegate:(CustomViewController*)controller;

 

@optional

//オプショナルDelagateMethods Delegateを受ける親クラスで実装するしないは自由。

- (void)CustomVC_OptionalDelegate:(CustomViewController*)controller;

 

@end

 

Delegateの基本実装 .m

 //Delegateを受けるメソッドが実装されているかどうか確認する

if ([_delegate respondsToSelector:@selector(CustomVC_ReqiredDelegate:)]) {
        //Delegateを実際に発生させる。対象メソッドが実装されていないと落ちるので注意。

        [_delegate  CustomVC_ReqiredDelegate:self];

    }