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

时间:2015-09-24 16:13:17

标签: swift swift2

运行Swift 2迁移后出现此错误:

  

如果没有更多的上下文,表达的类型是不明确的

这一行:

HEAD

2 个答案:

答案 0 :(得分:0)

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

自Swift 2以来不再存在,迁移后你必须明确声明元组:

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

答案 1 :(得分:0)

如果你打算把它变成一个" tuples"由StringNSNumberBool组成,您可以执行以下操作:

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

interestItems.append(("foo", 42, true))
interestItems.append(("bar", -1, true))

这会产生一个包含两个项目的数组,每个项目都是由StringNSNumberBool组成的元组。

另一方面,如果您打算将此项目列为StringNSNumberBool,则您必须声明它作为AnyObject

的数组
var interestItems = [AnyObject]()

interestItems.append("foo")
interestItems.append(42)
interestItems.append(true)

这是一个包含三个项目的数组。

我认为你的意思是前者,但这些是一些方法。