🐙
Project 16 of 100 Days of Swift in iOS15 学習記録
100 Days of Swiftを勉強しているうちに
自分が出会った問題と解決方法を記録します
環境
Xcode 13.3.1
iPhone SE3 iOS 15.4
アプリを背景に隠すと、XcodeにCrashが発生してしまう

アプリが起動しているうちに、Homeボタンを押してアプリを背景に隠すと
Xcodeには上図のようなエラーが出てしまいます
その解決方法は、MapViewのIBOutlet変数をweak指定したらOKです
まずはweakというキーワードを追加しましょう
viewController.swift
class ViewController: UIViewController, MKMapViewDelegate {
- @IBOutlet var mapView: MKMapView!
+ @IBOutlet weak var mapView: MKMapView!
// ほかのコード...
}
weakを指定すると、mapViewがオプショナルになりますので
変数を利用する場合はmapViewではなくてmapView?を使うことになります
viewController.swift
override func viewDidLoad() {
// ほかのコード...
- mapView.addAnnotations([london, oslo, paris, rome, washington])
- mapView.region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 51.5, longitude: 0), span: MKCoordinateSpan(latitudeDelta: 25, longitudeDelta: 25))
+ mapView?.addAnnotations([london, oslo, paris, rome, washington])
+ mapView?.region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 51.5, longitude: 0), span: MKCoordinateSpan(latitudeDelta: 25, longitudeDelta: 25))
// ほかのコード...
}
最後にビルド、Crashがなくなることを確認します
Discussion