我正在制作这个应用程序,用户可以在其中看到他们自己的位置和其他用户的位置。我刚刚得到了一个错误说主题1:EXC_BAD_INSTRUCTION
主题1:EXC_BAD_INSTRUCTION(代码= EXC_1386_INVOP,子码=为0x0)
在这一行:
var lat = locationManager.location?.coordinate.latitude
我没有设法解决它。
是什么导致它,我该如何解决它?
对于任何谁可能会喜欢的其他代码:
import UIKit
import Parse
import CoreLocation
import MapKit
class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
var myLocation: [CLLocation] = []
@IBOutlet weak var MapView: MKMapView!
@IBOutlet var UsernameTextField: UITextField!
@IBOutlet var PasswordTF: UITextField!
@IBOutlet var EmailTF: UITextField!
var locationManager: CLLocationManager!
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let locationManager = CLLocationManager()
let lat = locationManager.location!.coordinate.latitude
let lon = locationManager.location!.coordinate.longitude
let location = CLLocationCoordinate2D(latitude: lat, longitude: lon)
let span = MKCoordinateSpanMake(0.05, 0.05)
let region = MKCoordinateRegionMake(location, span)
MapView!.setRegion(region, animated: true)
let anotation = MKPointAnnotation()
anotation.coordinate = location
anotation.title = "My tittle"
anotation.subtitle = "My Subtitle"
MapView!.addAnnotation(anotation)
print("Welcome in MapViewController")
}
}
位置管理员应该是一个属性,而不是局部变量。 – matt
是的,我的坏。现在错误向下移动,让位置= CLLocationCoordinate2D(latitude:lat!,longitude:lon!) –
错误可能是由于使用'!'强制解包零可选引起的。你应该重写你的代码以避免使用'!'强制拆包选项。切换到可选绑定来确定意外的nil值的位置。 –