Swift 表达式类型';设置<;NSObject>';没有更多的上下文,它是模糊的

Swift 表达式类型';设置<;NSObject>';没有更多的上下文,它是模糊的,swift,swift3,nsobject,Swift,Swift3,Nsobject,我最近切换到Swift 3,我在下面的一行中遇到了一个错误,我在Swift 2中没有遇到。layerClient调用引用layerkit api,但错误似乎更多地处理类型而不是api。错误本身是“表达式类型‘Set’不明确,没有更多” layerClient.autodownloadMIMETypes=Set(arrayLiteral:“image/png”) 我想您正在使用 创建集合时,不需要。它可以通过传递给init方法的参数来确定它所包含的类型。另外,swift中的autodownload

我最近切换到Swift 3,我在下面的一行中遇到了一个错误,我在Swift 2中没有遇到。layerClient调用引用layerkit api,但错误似乎更多地处理类型而不是api。错误本身是“表达式类型‘Set’不明确,没有更多”

layerClient.autodownloadMIMETypes=Set(arrayLiteral:“image/png”)
我想您正在使用

创建
集合时,不需要
。它可以通过传递给init方法的参数来确定它所包含的类型。另外,swift中的
autodownloadMIMETypes
类型为
Set
,与
Set
不匹配。这应该行得通

layerClient.autodownloadMIMETypes = Set(arrayLiteral: "image/png")
另外,由于
Set
符合
ExpressibleByArrayLiteral
协议,您应该能够像创建数组一样创建它

layerClient.autodownloadMIMETypes = ["image/png"]
我猜你在用

创建
集合时,不需要
。它可以通过传递给init方法的参数来确定它所包含的类型。另外,swift中的
autodownloadMIMETypes
类型为
Set
,与
Set
不匹配。这应该行得通

layerClient.autodownloadMIMETypes = Set(arrayLiteral: "image/png")
另外,由于
Set
符合
ExpressibleByArrayLiteral
协议,您应该能够像创建数组一样创建它

layerClient.autodownloadMIMETypes = ["image/png"]

您传递的是一个字符串,而不是数组文本。只要用[]将其包围,就可以传递字符串,而不是数组文本。就用[]