Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift-谷歌地图与';意外发现nil';错误_Ios_Swift_Google Maps_Swift3_Xcode8 - Fatal编程技术网

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:/仍然崩溃,应该是弱的还是强的参考?它必须是弱的,如果你已经连接它使用故事板,然后参考我的更新答案