🔖

Swift viewControllerでフレームワーククラスのデリゲートに準拠する理由の個人的なまとめ

2024/05/13に公開

ロケーションのフレームワークCoreLocationを使うテイでまとめる

viewControllerでCoreLocatioのインスタンスlocationManagerを使う

よくあるインスタンスの図?
フレームワーク →CoreLocation
↓※CLLocationManagerはCoreLocationのクラスの一つです
クラス     →CLLocationManager 
↓※このクラスのインスタンスを作成した機能を利用したい
インスタンス  →locationManager 
↑※CLLocationManagerのインスタンス
view Controller
※インスタンスを使用してlocationManagerの機能を使用したい
※locationManagerの機能を使用するためには、locationManagerの親クラスCLLocationManagerのプロトコルに準拠している必要がある
上の図?のコードの例
・クラスのインスタンスの作成
var locationManager = CLLocationManager() //クラスのインスタンスを作成している
・デリゲートの設定
locationManager.delegate = self //インスタンスにクラスのデリゲートを設定
※CLLocationManagerクラスのデリゲートをlocationManagerに設定している

ViewControllerがlocationManagerインスタンス(親CLLocationManager)を使用するためには
下記のようにクラスCLLocationManagerのデリゲートを準拠している必要がある

class ViewController: UIViewController, CLLocationManagerDelegate {

という
おそらくもっと深い理由がありそうですが一旦ここまでの理解にしておく

Discussion