LoginSignup
1
0

More than 5 years have passed since last update.

デリゲートを自作する

Last updated at Posted at 2017-10-10

最近まで、自作デリゲートの使い方がいまいちイメージできていませんでしたが、少しずつ理解できてきましたので、デリゲートについて備忘録を残します。

デリゲートを自作で用意

MVCモデルでのクラス分けを勉強するうちに、「他のクラスへの完了通知」みたいなものが必要な場面が出てきたので、その際にデリゲートを使ってみました。

結論から言うと、
「特定のタイミングで、あるクラスのメソッドから別のクラスのメソッドを呼びたいとき」
に使うと便利でした。
任意のタイミングで必要メソッドを呼ぶことができるため、便利だと素直に思いました。

知らなくて困ったこと

具体的に、以下の場面で困りました。

Modelクラスで、データを保存した後などにControllerクラスのテーブルビューのreloadメソッドを呼べなかった。

そこで、デリゲートを作り、任意のタイミングで他クラス(Controllerクラス)のreloadメソッドを呼んでみた。

実際の使用例

/// デリゲートオブジェクト、メソッドの作成
/// DataModel.h
@protocol DataModelDelegate <NSObject>
- (void)loadData;
@end
/// 他クラスから呼び出したい処理内容を用意
/// ViewController.h
- (void)loadData {
   [self.tableView reloadData];
}

その他必要な用意

処理内容を記載するクラスに

<DataModelDelegate>

を準拠し、

DataModel *dataModel = [[DataModel alloc] init];
dataModel.delegate = self;

としておく。

まとめ

自作デリゲートの使用に関する知識はまだまだ少ないので、また別の機会に記事にしようと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0