为什么这不可能?
var d = [AnyObject]()
d.append(["item": nil])
我收到错误:AnyObject does not have a member named 'Key'
答案 0 :(得分:2)
代码 [“item”:nil] 建议你尝试添加一个字典元素,但是你做了一个看起来像数组的东西。
此代码:var d = [AnyObject]()
创建一个数组,字典的等效项为:'var d = String:AnyObject。
执行此操作的其他方法是:
var d : [AnyObject] = []
表示空数组或
var d : [String : AnyObject] = [:]
表示空字典,带有字符串键。
请注意,您将无法将键的值存储为“nil”,因为没有值的键的所有值都是nil。要将关键项重置为nil,您可以使用:
d["item"] = nil
连接(加入)词典和添加项目,你不能像在数组中那样使用+ =或.append,但对于你可以使用的单行程序:
for a : (key : String, value : String) in dictA { dictB[a.key] = a.value }
字典与数组不同,例如您不能为同一个密钥设置多个值。您可以创建键值对的数组并轻松地将它们连接起来,例如:
var empty : [(String , String)] = []
var full : [(String , String)] = [("A","1"), ("B","2")]
empty += full
但请注意,如果您多次执行此操作,则很容易就会出现重复项。
答案 1 :(得分:0)
[AnyObject]
是AnyObject
的数组,因此值必须是对象(类的实例)。 ["item": nil]
是一个字典文字,用于初始化Dictionary
(结构,而不是类)或DictionaryLiteralConvertible
的其他类型。编译器无法确定您希望该文字的类型。