在做了一些研究并在堆栈上询问其他问题后,我似乎无法弄清楚问题。但我走得很远。
我是Stack的新手,所以如果我需要提供更多信息,请告诉我。
错误发生在
self.mapView.showsUserLocation = true
在编译器中说
致命错误:在打开选项值时意外发现nil IIDB
如果我删除该行,则错误会出现在另一个.mapView上。线。
当我移动出现错误的行时,将其放在:
下面 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
该应用程序打开,一切正常,但它不显示位置,但我能够运行应用程序而不会出现任何错误。
感谢您的时间。
如果有人需要,这是我的代码。
import UIKit
import Parse
import CoreLocation
import MapKit
class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate {
@IBOutlet weak var mapView: MKMapView!
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestWhenInUseAuthorization()
self.locationManager.startUpdatingLocation()
self.mapView.showsUserLocation = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Location Delegate Methods
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations.last
let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 1, longitudeDelta: 1))
self.mapView.setRegion(region, animated: true)
self.locationManager.stopUpdatingLocation()
}
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
print("Error:" + error.localizedDescription)
}
}
答案 0 :(得分:2)
它将在属性上返回找到的nil错误的唯一原因是因为该属性尚未实例化。鉴于您正在使用IBOutlet,我想您没有将该属性挂钩到故事板中的地图视图。
答案 1 :(得分:0)
尝试添加locationManager.requestLocation()
而不是self.mapView.showsUserLocation = true
检查您的info.plist是否包含“隐私 - 位置使用说明”