Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift 3:使用“连接多个字符串”+&引用;操作员不再可能_Ios_Xcode_String_Swift3_Ambiguous - Fatal编程技术网

Ios Swift 3:使用“连接多个字符串”+&引用;操作员不再可能

Ios Swift 3:使用“连接多个字符串”+&引用;操作员不再可能,ios,xcode,string,swift3,ambiguous,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 ThreeAndF

在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
这很有效。。。他们删除了像这样的多个字符串的链接还是有问题?似乎编译器认为“+”是一个变量或其他同名的东西

编辑:

尽管这是另一个错误,但这似乎与:


如果超过2个可选字符串,也会崩溃。我想可选绑定是一个不错的选择。似乎这个bug已经存在了很长时间。

这似乎是个bug,我将进一步调查。如果我们模拟
的行为使用另一个操作符,它可以正常工作:

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"
postfix运算符|!{}
后缀func |!(rhs:T?->T{
返回rhs!
}
让s1:字符串?=“你好”
让s2:字符串?=" "
让s3:字符串?=“世界”
设连接=s1 |!+s2 |!+s3 |!//“你好,世界”

Look(Swift 3.0版(发行版),平台:Linux(x86_64))-如果您只使用字符串,可以将它们与
+
组合。谢谢。。我的四个部分也是字符串,但它们是可选的。(连接它们的方法只在它们确实存在时才起作用)因此,这可能是问题的一部分。。我将继续使用我的两部分方法,但仍然很好奇为什么:)要补充:我刚刚用optionals尝试过,沙盒崩溃时出现了相同的错误,但还有更多信息。添加第三个选项后,即使是连接这三个选项的打印行也会崩溃:另一种解决方法:
let joinedString=“”+partOne!+第二部分!+第三部分!+第四部分。谢谢。如果您发现其他内容,请告诉我们。我在上面编辑了一个链接。显然,这个bug已经存在了相当长的一段时间,有时会指出字符串是罪魁祸首,在我的例子中,操作符取决于“joinedString”变量是否可选。