ios - 解包 GMSPlacesClient 类型的可选值时意外发现 nil

标签 ios swift google-maps

我试图将我的谷歌地图 View 集中在用户当前位置,但是由于地方客户端等于nil,尽管我将gpsCoordinates分配给它,但我遇到了麻烦,下面是我的viewdidload()内的代码 View Controller

var gmsPlace : GMSPlace?
var gpsCoordinates : CLLocationCoordinate2D?

override func viewDidLoad() {
    super.viewDidLoad()
    //placesClient = GMSPlacesClient()
    var placesClient = GMSPlacesClient.sharedClient()
    placesClient.currentPlaceWithCallback { (placeLikelihoods, error) -> Void in
        guard error == nil else {
            print("Current Place error: \(error!.localizedDescription)")
            return
        }
        var gmsPlace : GMSPlace?

        if let placeLikelihoods = placeLikelihoods {
            for likelihood in placeLikelihoods.likelihoods {
                gmsPlace = likelihood.place
                //print("Current Place name \(gmsPlace.name) at likelihood \(likelihood.likelihood)")
                //print("Current Place address \(gmsPlace.formattedAddress)")
                //print("Current Place attributions \(gmsPlace.attributions)")
                //print("Current PlaceID \(gmsPlace.placeID)")
                self.gpsCoordinates = (gmsPlace!.coordinate)

            }
            print(self.gpsCoordinates)

        }
    }
    let testObject = PFObject(className: "TestObject")
    testObject["foo"] = "bar"
    testObject.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in
        print("Object has been saved.")
    }
    let camera = GMSCameraPosition.cameraWithTarget(gpsCoordinates!, zoom: 16.9)
    //let camera = GMSCamera
    print(camera)
    viewMap.camera = camera
    viewMap.myLocationEnabled = true
    viewMap.settings.myLocationButton = true


    let marker = GMSMarker()
    marker.position = self.gpsCoordinates!
    marker.title = "Newport Beach"
    marker.snippet = "California"
    marker.map = viewMap

    // Do any additional setup after loading the view, typically from a nib.
    print(url)
    print(videoData)
    print(doUpload)
    print(FriendsOrPublic)
    print(dataPath)
    if doUpload == true {
        Upload()
    }

   // Download()
}

最佳答案

您好,只要在 View 中执行此操作就会出现您的问题将得到解决

关于ios - 解包 GMSPlacesClient 类型的可选值时意外发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37915650/

相关文章:

ios - 如果 KVO 观察到的值在短时间内发生两次变化,那么 observeValueForKeyPath() 会发生什么?

javascript - 我如何让我的谷歌地图指向它应该指向的位置?

java - PermissionUtils 无法解决

ios - UINavigationBar 彩色动画与推送动画同步

android - 对于有这么多数据的东西,JSON 比 XML 好吗 "classification"

ios - 当自定义 collectionViewCell 中有标签时,不会调用 didSelectItemAtIndexPath

jQuery goMap 正在覆盖我的页脚的样式?如何停止?

c# - Xamarin-ios 小部件无法加载

ios - 需要按钮输入的 iOS 应用程序的蓝牙配置文件选择

xcode - Firebase 提供商数据