参见英文答案 >
Swift 3 incorrect string interpolation with implicitly unwrapped Optionals1个
从Swift 3.0开始,我对字符串有一些麻烦,尤其是连接.第一个例子是我开始使用Swift定义我的url字符串时使用的.
从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中指定了单位年份,则可以安全地执行此操作.