Ios Swift-谷歌地图与';意外发现nil';错误
我正在尝试将Ios Swift-谷歌地图与';意外发现nil';错误,ios,swift,google-maps,swift3,xcode8,Ios,Swift,Google Maps,Swift3,Xcode8,我正在尝试将GoogleMap设置为UIView并将其添加为子视图。但是,在运行应用程序时,我遇到以下错误: 致命错误:在展开可选值时意外发现nil 它在代码行崩溃: mapView.camera = camera 这是我的完整ViewController代码: class LocationViewController: UIViewController { @IBOutlet weak var mapView: GMSMapView! override func viewD
GoogleMap
设置为UIView
并将其添加为子视图。但是,在运行应用程序时,我遇到以下错误:
致命错误:在展开可选值时意外发现nil
它在代码行崩溃:
mapView.camera = camera
这是我的完整ViewController代码:
class LocationViewController: UIViewController {
@IBOutlet weak var mapView: GMSMapView!
override func viewDidLoad() {
super.viewDidLoad()
let camera = GMSCameraPosition.camera(withLatitude: 15.4989, longitude: 73.8278, zoom: 6)
mapView.camera = camera
mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
mapView.isMyLocationEnabled = true
mapView.settings.myLocationButton = true
self.view.addSubview(self.mapView)
}
}
我经历了一些其他类似的线程,它们都有相同的代码。在我的例子中,UI冻结并因此错误而崩溃。我做错了什么
编辑
是的,我已将UIView的自定义类设置为
GMSMapView
您是否可以使用以下代码并尝试:
override func viewDidLoad() {
super.viewDidLoad()
let camera = GMSCameraPosition.camera(withLatitude: 15.4989, longitude: 73.8278, zoom: 6)
mapView.camera = camera
mapView.isMyLocationEnabled = true
mapView.settings.myLocationButton = true
self.view.addSubview(self.mapView)
}
let camera = GMSCameraPosition.camera(withLatitude: 15.4989,
longitude: 73.8278,
zoom: 6)
let mapView = GMSMapView.map(withFrame: self.view.bounds, camera: camera)
你必须这样做 您必须为
GMSMapview
在这一行
self.view.bounds
中,您必须设置自定义view
let camera = GMSCameraPosition.camera(withLatitude: 15.4989,
longitude: 73.8278,
zoom: 6)
let mapView = GMSMapView.map(withFrame: self.view.bounds, camera: camera)
这是swift 3.0中的语法
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
print(locations)
mapview.delegate = self
currentLocation = CLLocationCoordinate2D(latitude:CLLocationDegrees(locations[0].coordinate.latitude), longitude:CLLocationDegrees(locations[0].coordinate.longitude))
mapview.camera = GMSCameraPosition.camera(withTarget:locations[0].coordinate, zoom: 10.0)
mapview.isMyLocationEnabled = true
}
你在哪一行出错?@Jecky At
mapView.camera=camera
检查我的答案检查你在故事板中的IBOutlet连接你给了故事板中的视图GMSMapView类了吗你做了什么更改?你的mapView框架swift-3中的代码有点不同bro:/仍然崩溃,应该是弱的还是强的参考?它必须是弱的,如果你已经连接它使用故事板,然后参考我的更新答案