相关疑难解决方法(0)

Swift 3错误的字符串插值与隐式解包的Optionals

为什么在Swift 3中使用字符串插值时,隐式解包的选项不会被解包?

示例:在操场中运行以下代码

var str: String!
str = "Hello"

print("The following should not be printed as an optional: \(str)")
Run Code Online (Sandbox Code Playgroud)

产生这个输出:

The following should not be printed as an optional: Optional("Hello")
Run Code Online (Sandbox Code Playgroud)

当然我可以用+运算符连接字符串,但我在我的应用程序中几乎无处不在使用字符串插值,现在因为这个而无法工作(bug?).

这甚至是一个bug还是他们故意用Swift 3改变这种行为?

string string-interpolation swift swift3

71
推荐指数
1
解决办法
5483
查看次数

在Xcode 8中隐式解包可选赋值

在Xcode 8发布版本中,我发现了一个奇怪的场景.

这是代码,

let implicitlyUnwrappedOptionalString: String! = "implicitlyUnwrappedOptionalString"
let foo = implicitlyUnwrappedOptionalString

print(implicitlyUnwrappedOptionalString)
print(foo)
Run Code Online (Sandbox Code Playgroud)

这是结果:

implicitlyUnwrappedOptionalString
Optional("implicitlyUnwrappedOptionalString")
Run Code Online (Sandbox Code Playgroud)

上面的这些表明,当我将一个隐式展开的可选项分配给一个没有显式类型的变量时,该类型将被推断为一个可选类型,而不是它最初的类型,也就是隐式展开的可选类型.

我的Xcode已更新为8.任何人都可以验证Xcode 7.x中的行为吗?

更改是由于Swift版本更改还是Xcode?

xcode ios swift

4
推荐指数
1
解决办法
732
查看次数

标签 统计

swift ×2

ios ×1

string ×1

string-interpolation ×1

swift3 ×1

xcode ×1