🐙
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