【swift】delegate=selfについて

  • 2022年9月7日
  • 2024年2月21日
  • Swift

swiftのデリゲート機能を使う時にたまに見られる↓の書き方の意味が分からなかった

ので調べてみました。

class ViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    locationManager = CLLocationManager()
    locationManager!.delegate = self
  }
}

これはself = viewController、つまりこのクラスを定義したクラス自身(viewController)の中で

処理を実行するということです。

デリゲートは、移譲するクラスを指定して委譲されるクラスのメソッドを実行しますが

今回定義したCLLocationManagerの場合は、viewControllerに実行を移譲するため

ViewController内でメソッドを実行することができます。

なので、locationManager!.delegate = selfのようなコードを見たときは

このクラスの中で委譲されるメソッドのクラスを実行すると意識しておくとわかりやすい

と思います。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG