当前位置: 首页 > 面试题库 >

无法摆脱Optional()字符串

谭嘉歆
2023-03-14
问题内容

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

使用此功能

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变量,不能摆脱它。

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


问题答案:

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

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



 类似资料:
  • 我有JavaWebService代码在我的eclipse。我使用了@WebService@Webmethod,@XmlElements,@XmlType,@XmlAccessorType 现在我正在使用cxf框架中的java2ws命令生成wsdl。这是命令 我的wsdl文件包含agr0作为我不想要的名称,因为当我将其导入SoapUI时。它正在字段周围添加标记。 下面是带有arg0的wsdl部分 下

  • 问题内容: 我正在使用express在nodejs上运行服务器。我似乎无法摆脱标题: 我想知道是否有任何方法可以摆脱此标头,还是我必须忍受它? 问题答案: 在Express> = 3.0.0rc5中: 这是一个简单的中间件,可以删除早期版本的Express中的标头:

  • 问题内容: 我正在使用Apache Derby嵌入式数据库在Maven项目中进行单元测试。不幸的是,每当运行测试时,我最终都会在项目根目录中找到该文件。数据库本身是在目录()中创建的,因此这不是问题。在查阅参考指南之后, 我尝试在JDBC url()上设置参数,但这似乎是针对其他日志的,因此仍然会出现。 任何帮助深表感谢。 问题答案: 您可以通过创建以下类来摆脱文件 并设置JVM系统属性,例如,使

  • 在这段代码中,我从\u RETURN\u VALUE得到了\u SOME\u PATH\u上的

  • 我正在尝试实现一个depht first search alogrithm(我的代码可能很糟糕,对不起)。现在我想让这成为一个递归方法,但一旦满足结束条件,我似乎就无法打破它。您在方法中看到的第一个if-条件应该会跳出该方法。当我调试项目时,它到达了返回语句,然后立即跳转到方法的末尾。但是它没有停止整个事情,而是回到了循环并以无限循环进行。 我试图自己解决这个问题,但没有成功,于是我开始在网上搜索

  • 问题内容: 到目前为止,给我带来了很多麻烦,所以我想摆脱它。尽管spring框架文档清楚地说明了应该做的事情,但实际上 并没有摘要列表。 所以我一直坚持删除并得到错误 -在名称为的中找不到带有请求的映射 对于所有应该由控制器类解决的Url(在这种情况下:)。有什么建议可以让我了解更多信息吗?我非常想知道到底由代表什么标签。 问题答案: 你可以用来自定义定义的每个bean 。现在,javadocs详