我是 iOS 新手,我有一个关于查找当前用户位置的问题。我正在阅读 Apple 文档:
在地图上显示用户的当前位置 地图套件包括对在地图上显示用户当前位置的内置支持。要显示此位置,请将地图视图对象的 showsUserLocation 属性设置为 YES。这样做会导致地图视图使用核心位置来查找用户的位置,并将 MKUserLocation 类型的注释添加到地图中。
向地图添加 MKUserLocation 注释对象由委托以与自定义注释相同的方式报告。如果要将自定义注释视图与用户位置相关联,则应从委托对象的 mapView:viewForAnnotation: 方法返回该视图。如果要使用默认注释视图,请从该方法返回 nil。要了解有关向地图添加注释的更多信息,请参阅注释地图。
听起来很棒。但是之后...
import UIKit
import MapKit
class ViewController: UIViewController {
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
//set initial location in Honolulu
//let initialLocation = CLLocation(latitude: 21.282778, longitude: -157.829444)
mapView.showsUserLocation = true
let initialLocation = mapView.userLocation.location
centerMapOnLocation(initialLocation)
// let artwork = Artwork(title: "King David Kalakaua", locationName: "Waikiki Gateway Park", discipline: "Sculpture", coordinate: CLLocationCoordinate2D(latitude: 21.283921, longitude: -157.831661))
// mapView.addAnnotation(artwork)
//
// mapView.delegate = self
}
let regionRadius: CLLocationDistance = 1000
func centerMapOnLocation(location: CLLocation){
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, regionRadius * 2.0, regionRadius * 2.0)
mapView.setRegion(coordinateRegion,animated:true)
}
}
我有一个fatal error: unexpectedly found nil while unwrapping an Optional value
. 我不明白为什么。如果我手动设置位置 - 当然没问题。但是在文档中写道,它将在地图上添加注释。没有添加注释,它会崩溃。不使用 CLLocationManager 就不能获取用户坐标吗?