here 안내에 따라 내 애플리케이션에지도를 포함하려고합니다. 문제는 지역을 설정할 때 오류가 발생한다는 것입니다. 코드 행 "let region = MKMap ..."을 입력하면 그 이유를 알 수 없습니다. 누구든지이 문제를 겪었거나 도움을 줄 방법을 알고 있습니까? 감사!MKMap 옵션에 대해 선택 해제 래시 오류가 발생했습니다.
코드 업데이트 :
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController, MKMapViewDelegate {
// MARK: Properties
@IBOutlet weak var MapView: MKMapView!
var locationManager = CLLocationManager.init()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationManager.requestWhenInUseAuthorization()
MapView.mapType = .standard
MapView.showsUserLocation = true
MapView.showsScale = true
MapView.showsCompass = true
let span = MKCoordinateSpan.init(latitudeDelta: 0.0075, longitudeDelta: 0.0075)
let region = MKCoordinateRegion.init(center: (locationManager.location?.coordinate)!, span: span)
MapView.setRegion(region, animated: true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
오류 업데이트 : 오류를 발생시키는 줄은 다음과 같습니다
let region = MKCoordinateRegion.init(center: (locationManager.location?.coordinate)!, span: span)
및 오류는 다음과 같습니다
스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP , subcode = 0x0)
관련 코드로 질문을 업데이트하고 오류의 원인이되는 행을 명확하게 표시하고 완전하고 정확한 오류 메시지. – rmaddy
나중에 값을 언랩하는 경우 옵션 체인을 사용하는 것은 의미가 없습니다 ... 문제가 어디에서 왔는지 확실하게 알 수 있습니다. 옵션을 올바르게 처리하고, 'nil'일 수있는 옵션에 대해 언 래핑을 사용하지 마십시오. 또한'init'을 명시 적으로 호출하지 말고'MKCoordinateRegion (center : span :)'단축형 표기법을 사용하십시오. –
죄송합니다. iOS 및 Swift 프로그래밍을 처음 사용합니다. 내 원래 게시물의 링크는 워크 플로우 가이드를 제공했지만 스택 오버플로의 다른 링크는 내가 사용하기에 확실하지 않은 코드 스 니펫을 제공했습니다. 그래서'MKCoordinateRegion'과'?'에서'.init'을'locationManager.location? '으로부터 제거 할 것을 추천합니다. – user282041