Swift 2迁移错误:";表达式类型不明确,没有更多上下文”;

Swift 2迁移错误:";表达式类型不明确,没有更多上下文”;,swift,swift2,Swift,Swift2,运行Swift 2迁移后,我出现以下错误: 表达式类型不明确,没有更多上下文 对于这一行: var interestItems = [String, NSNumber, Bool]() 在Swift 1.2中,编译器自动从[String,NSNumber,Bool]中推断类型[(String,NSNumber,Bool)](元组数组) 自Swift 2以来,它不再存在,迁移后,您必须显式声明元组: var interestItems = [(String, NSNumber, Bool)](

运行Swift 2迁移后,我出现以下错误:

表达式类型不明确,没有更多上下文

对于这一行:

 var interestItems = [String, NSNumber, Bool]()

在Swift 1.2中,编译器自动从
[String,NSNumber,Bool]
中推断类型
[(String,NSNumber,Bool)]
(元组数组)

自Swift 2以来,它不再存在,迁移后,您必须显式声明元组:

var interestItems = [(String, NSNumber, Bool)]()

如果您想让它成为一个由
String
NSNumber
Bool
组成的“元组”数组,您可以执行以下操作:

var interestItems = [(String, NSNumber, Bool)]()

interestItems.append(("foo", 42, true))
interestItems.append(("bar", -1, true))
这将产生一个由两个项组成的数组,每个项都是一个元组,由一个
字符串
、一个
NSNumber
和一个
Bool
组成

另一方面,如果您想让它成为一个项目数组,这些项目可能是
String
NSNumber
Bool
,您只需将其声明为
AnyObject
的数组即可:

var interestItems = [AnyObject]()

interestItems.append("foo")
interestItems.append(42)
interestItems.append(true)
这是一个包含三项的数组


我想你指的是前者,但这是一些方法。

你的意思肯定是
[(字符串、NSNumber、Bool)]
-不仅仅是编译器不知道如何处理表达式……谢谢@Eric D。这正是我要找的。我们的代码库非常广泛,有大量元组。