【发布时间】:2015-10-13 19:32:07
【问题描述】:
我有一个字典定义为:
var options: Dictionary <String, AnyObject>?
当我尝试打电话时
Array(options?.keys)
我收到此错误:
调用中缺少参数标签“arrayLiteral:”
如何从字典中取出键?
【问题讨论】:
标签: arrays swift dictionary swift2
我有一个字典定义为:
var options: Dictionary <String, AnyObject>?
当我尝试打电话时
Array(options?.keys)
我收到此错误:
调用中缺少参数标签“arrayLiteral:”
如何从字典中取出键?
【问题讨论】:
标签: arrays swift dictionary swift2
Swift 中的对象构造函数(即init()s)需要为每个参数命名,因此您需要调用Array(arrayLiteral: options?.keys)。不过,您可能必须解开可选的包装。
【讨论】:
arrayLiteral: 的任何合理情况。 – 你的最后一句话是正确的,即Array(options!.keys)。
一个答案是您传递给它一个可选值而不是常规/非可选值。
这行得通:
var options: Dictionary <String, AnyObject>?
Array(options!.keys)
不过,还有更多。在我自己的另一个案例中,我在从自定义对象的文字数组创建集合时看到了这个错误,但只是在我将自定义对象更改为不继承自 NSObject 之后。
情节变厚了。
【讨论】: