string - Swift 3.0 字符串连接留下 "Optional"

标签 string swift3 string-concatenation ios10 xcode8

这个问题在这里已经有了答案:





Swift 3 incorrect string interpolation with implicitly unwrapped Optionals

(1 个回答)


4年前关闭。




从 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

另一个 - 我想我在使用字符串时遇到的类似问题是这个。我再次连接字符串,但这次我使用 + ilke 与 urlString - 但这次不起作用。代码行如下所示:
self.labelName.text = currentUser.name + " " + String(describing: ageComponents.year)

不幸的是,它会产生这样的字符串:“My Name Optional(26)”。在这种情况下,我没有解决方案 String(describing: ageComponents.year)不是可选的,它不允许我做 String(describing: ageComponents.year) ?? "whatever" 之类的事情

有人见过类似的吗?

最佳答案

在 Swift 3 中, native 结构的所有属性 DateComponents是与基金会不同的可选项目 NSDateComponents同行。

var year: Int? { get set }

你需要打开它。如果您指定了单位 yearageComponents你可以安全地做到这一点。

关于string - Swift 3.0 字符串连接留下 "Optional",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39577658/

相关文章:

sql - 如何创建 SQL Server 函数以将子查询中的 "join"多行转换为单个分隔字段?

java - 打印数组对象时使用 printf 进行格式化

ios - Swift 3 - 实例化 View Controller 后没有成员错误

c - 在 C 中执行大量字符串连接?

用于字符串连接的 SQLite 更新语法?

ios - 表复习 - 索引超出范围错误

string - 在 Fortran 中获取可变长度字符串列表的更好方法

string - Excel - 将字符串转换为公式

java - 从 HashMap<String, Object> 中提取值

ios - SWRevealViewController 不与 swift 3 切换