要nil
在Swift中为字典添加值,则字典的值必须为Optional
类型。
考虑一个Person
类:
class Person {
let name: String
weak var spouse: Person?
init(name: String, spouse: Person?) {
self.name = name
self.spouse = spouse
}
}
Person
类型的实例可以具有name
和可选spouse
。创建两个实例,然后将第一个实例添加到字典中:
let p1 = Person(name: "John", spouse: nil)
let p2 = Person(name: "Doe", spouse: p1)
p1.spouse = p2
var people = [p1.name: p1.spouse]
该词典(称为people
)将姓名映射到配偶,并且类型为[String: Person?]
。现在,您有了一个字典,其值Optional
类型为:Person?
。
要将键的值更新p1.name
为nil
,请使用类型updateValue(_: forKey:)
上的方法Dictionary
。
people.updateValue(nil, forKey: p1.name)
people[p1.name]
密钥的值p1.name
现在为nil
。updateValue(_: forKey:)
在这种情况下,使用起来更简单一些,因为它不需要创建一个一次性实例,将其设置为nil
,并将该实例分配给字典中的一个键。
注意:有关插入null
帖子字典的信息,请参见林太郎的答案。
nil
给键后,下次访问该键时它将返回nil
(因为它会删除对象,而删除的对象不存在)。如果要表示一个非nil
null值,则可以使用NSNull()
。