Swift 3.0字符串连接离开“可选”

参见英文答案 > Swift 3 incorrect string interpolation with implicitly unwrapped Optionals1个
从Swift 3.0开始,我对字符串有一些麻烦,尤其是连接.第一个例子是我开始使用Swift定义我的url字符串时使用的.
internal let host: String! = "https://host.io/"
let urlString = "\(host)oauth/access_token"

其中host被定义为类的开头.这完美地工作直到Swift 3.0,现在打印出来像这样:

Optional("https://host.io/")oauth/access_token

这很奇怪.现在我必须写这个

let urlString = host + "oauth/access_token"

获得预期的输出.

https://host.io/oauth/access_token

一个 – 我想我和Strings有类似的问题就是这个.我再次连接字符串,但这次我使用ilke和urlString – 但这次不起作用.代码行如下所示:

self.labelName.text = currentUser.name + " " + String(describing: ageComponents.year)

不幸的是,它产生了这样的字符串:“My Name Optional(26)”.在这种情况下我没有解决方案String(描述:ageComponents.year)不是可选的,它不允许我做像String这样的事情(描述:ageComponents.year)?? “随你”

有人见过类似的东西?

在Swift 3中,本机结构DateComponents的所有属性都是可选项,与Foundation NSDateComponents对应项不同.
var year: Int? { get set }

你需要解开它.如果您在ageComponents中指定了单位年份,则可以安全地执行此操作.

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...