ios - swift 3 : Joining multiple Strings with "+" operator no longer possible

标签 ios xcode string swift3 ambiguous

在 swift 2.3 中,我有一段简单的代码:

let joinedString = partOne! + PartTwo! + PartThree! + PartFour!

现在,随着转换到 swift 3,我一直在用最模糊的解释猛烈抨击大约 24 个错误。这是其中之一:

同一行代码报错:

Ambiguous reference to member '+'

但是,如果我这样拆分它们:

let OneAndTwo = partOne! + partTwo!
let ThreeAndFour = partThree! + PartFour!
let joinedString = OneAndTwo + ThreeAndFour

这行得通...他们是否像这样删除了多个字符串的链接,还是有问题?似乎编译器认为“+”是一个变量或其他名称相同的东西?

编辑:

尽管这是另一个错误,但似乎与以下内容有关:This Question

一旦超过 2 个可选字符串,也会崩溃。我想可选绑定(bind)是可行的方法。看起来这个错误已经存在了很长一段时间。

最佳答案

这似乎是一个错误,我会进一步调查。如果我们用另一个运算符模拟 ! 的行为,它就可以正常工作:

postfix operator |! {}
postfix func |! <T>(rhs: T?) -> T {
    return rhs!
}

let s1: String? = "Hello"
let s2: String? = " "
let s3: String? = "World"
let joined = s1|! + s2|! + s3|! // "Hello World"

关于ios - swift 3 : Joining multiple Strings with "+" operator no longer possible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39484078/

相关文章:

c++ - 从 char** 到 const char** 的隐式转换

ruby - 用零填充数字

iphone - iOS,KERN_INVALID_ADDRESS [UITextField 键盘输入更改选择 :]

objective-c - 将 NSStrings 分成段落

objective-c - 一对多关系的逆关系

ios - 如何使用 Xcode 6.0.1 重定向回 url 方案中的应用程序

xcode - Xcode组件安装过程中出错

iphone - 如何在 UIView 中使用 CAAnimation 添加波纹动画

ios - didReceiveRemoteNotification 不在后台工作

c# - 为什么编译器为此需要复杂的语法?