Swift 2迁移错误:";表达式类型不明确,没有更多上下文”;
运行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)](
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。这正是我要找的。我们的代码库非常广泛,有大量元组。