swiftのデリゲート機能を使う時にたまに見られる↓の書き方の意味が分からなかった
ので調べてみました。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
locationManager = CLLocationManager()
locationManager!.delegate = self
}
}
これはself = viewController、つまりこのクラスを定義したクラス自身(viewController)の中で
処理を実行するということです。
デリゲートは、移譲するクラスを指定して委譲されるクラスのメソッドを実行しますが
今回定義したCLLocationManagerの場合は、viewControllerに実行を移譲するため
ViewController内でメソッドを実行することができます。
なので、locationManager!.delegate = selfのようなコードを見たときは
このクラスの中で委譲されるメソッドのクラスを実行すると意識しておくとわかりやすい
と思います。