加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何添加nil值到Swift字典?

发布时间:2020-12-14 06:02:21 所属栏目:百科 来源:网络整理
导读:我在我的应用程序中向我的服务器发出了请求。并发布数据这样的。服务器端正在等待所有参数,即使他们是零。但我不能添加nil值到字典。 var postDict = DictionaryString,AnyObject postDict[pass]=123 postDict[name]="ali" postDict[surname]=nil // dictio
我在我的应用程序中向我的服务器发出了请求。并发布数据这样的。服务器端正在等待所有参数,即使他们是零。但我不能添加nil值到字典。
var postDict = Dictionary<String,AnyObject>
 postDict[pass]=123
 postDict[name]="ali"
 postDict[surname]=nil // dictionary still has only pass and name variables.

有没有办法添加nil值到字典?

How to add nil value to Swift Dictionary?

基本上与向字典添加任何其他值的方式相同。你首先需要一个字典,它的值类型可以容纳你的值。 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。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读