Objective-C (iOS): オリジナル Delegate の設定

Objective-C: PhotoDataController.h

// デリゲートを定義
@protocol PhotoDataDelegate <NSObject>
  // 実装必須デリゲート
  @required
    - (void)photoDataWasLoaded;

  // オプションデリゲート
  @optional
    - (void)photoDataWasInit;

@end

// デリゲート元のクラス
@interface PhotoDataController : NSObject

@property id<PhotoDataDelegate> delegate;

@end

Objective-C: PhotoDataController.m

...

// photoDataWasInit メソッドを実装しているか事前に確認してから
// デリゲートプロパティにメッセージを送る
if ([self.delegate respondsToSelector:@selector(photoDataWasInit)]) {
    // photoDataWasInit を呼び出す
    [self.delegate photoDataWasInit];
}

...