一尘不染

无法摆脱Optional()字符串

swift

我正在尝试更新服务器上的用户位置

使用此功能

func updateloc(lat : String?, long : String?) {

/code...

 let data = "lat=\(lat!)&long=\(long!)"

}

这是代表

 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {


        updateloc(String(manager.location?.coordinate.latitude), long: String(manager.location?.coordinate.longitude))

    }

我有Optional(“”)lat和和long变量,不能摆脱它。

任何想法如何做到这一点?


阅读 231

收藏
2020-07-07

共1个答案

一尘不染

如果您像这样解开纬度和经度值…

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    if  let lat = manager.location?.coordinate.latitude,
        let long = manager.location?.coordinate.longitude {

        updateloc(String(lat), long: String(long))
    }
}

…然后您可以在updateloc函数中完全避免使用可选:

func updateloc(lat : String, long : String) {

// code...

    let data = "lat=\(lat)&long=\(long)"
}

originalUser2没错…除非您有充分理由强制拆开它们,否则应该养成安全地解开可选内容的习惯。而且,仅尝试摆脱可选内容以使代码可以编译并不是一个很好的理由。

2020-07-07