如何添加nil值到Swift字典?
我在我的应用程序中向我的服务器发出了请求。并发布数据这样的。服务器端正在等待所有参数,即使他们是零。但我不能添加nil值到字典。
var postDict = Dictionary<String,AnyObject> postDict[pass]=123 postDict[name]="ali" postDict[surname]=nil // dictionary still has only pass and name variables. 有没有办法添加nil值到字典?
基本上与向字典添加任何其他值的方式相同。你首先需要一个字典,它的值类型可以容纳你的值。 AnyObject类型的值不能为nil。因此,类型[String:AnyObject]的字典不能具有值nil。 如果你有一个值类型是一个可选类型的字典,如[String:AnyObject?],那么它可以保存nil值。例如, let x : [String : AnyObject?] = ["foo" : nil] 如果你想使用下标语法来分配一个元素,它是有点棘手。注意,类型[K:V]的下标具有类型V 1。可选的是,当你得到它,指示是否有一个键的条目,如果是,该值;当你把它放在它,它允许你设置一个值或删除条目(通过分配nil)。 这意味着我们的字典类型[String:AnyObject?],下标有AnyObject类型。同样,当您将值放入下标时,“outer”可选属性允许您设置值或删除条目。如果我们简单地写 x["foo"] = nil 编译器推断为nil的AnyObject类型,外部可选,这意味着删除键“foo”的条目。 为了将键“foo”的值设置为AnyObject?值nil,我们需要传递一个非nil外部可选,包含值为nil的内部可选(类型AnyObject?)。为了做到这一点,我们可以做到 let v : AnyObject? = nil x["foo"] = v 要么 x["foo"] = nil as AnyObject? 任何表明我们有一个nil的AnyObject,而不是AnyObject。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |