我已在我的应用程序中向服务器发出请求.并发布了类似的数据.服务器端正在等待所有参数,即使它们为零.但我无法在字典中添加零值.

 var postDict = Dictionary<String,AnyObject>
 postDict[pass]=123
 postDict[name]="ali"
 postDict[surname]=nil // dictionary still has only pass and name variables.

有没有办法给字典增加零值?

推荐答案

如何为Swift Dictionary添加nil个值?

基本上就像你给字典添加任何其他值一样.你首先需要一本字典,它的值类型可以保存你的值.类型AnyObject不能有值nil.因此,[String : AnyObject]类型的字典不能有nil值.

如果字典的值类型是可选的,比如[String : AnyObject?],那么它可以容纳nil个值.例如

let x : [String : AnyObject?] = ["foo" : nil]

如果您想使用下标语法来分配元素,这有点棘手.注意,[K:V]类型的下标有V?类型.可选的是,当您取出它时,指示是否有该键的条目,如果有,则指示值;当你把它放进go 时,它允许你设置一个值或删除条目(通过分配nil).

这意味着对于[String : AnyObject?]型字典,下标是AnyObject??型.同样,当您将值放入下标时,"外部"选项允许您设置值或删除条目.如果我们只是写

x["foo"] = nil

编译器推断为AnyObject??类型的nil,外部可选,这意味着删除键"foo"的条目.

为了将键"foo"的值转换为AnyObject?nil,我们需要传入一个非nil外部可选项,其中包含一个nil值的内部可选项(AnyObject?类型).为了做到这一点,我们可以

let v : AnyObject? = nil
x["foo"] = v

x["foo"] = nil as AnyObject?

任何表明我们有AnyObject?nil,而不是AnyObject??的东西.

Swift相关问答推荐

限制文本字段中的字符数- Swift

如何在SWIFT中使用DiscardingTaskGroup获得任务结果

为什么ClosedRange<;Int&>包含的速度比预期慢340万倍?

如何将新事例添加到枚举中?

如何在SwiftUI的文本视图中显示NSMutableAttributedString?

我需要一些关于 SwiftUI 动画的帮助

如何使用模型在 SwiftUI 的列表中进行搜索

当将新值推送到 NavigationStack 时,SwiftUI 的 navigationDestination 已在堆栈的早期声明

Swift Property Wrappers-Initialization 失败并显示无法将‘Double’类型的值转换为预期的参数类型

Swift Random Float Fatal Error:在无限范围内没有均匀分布

如何在一个视图控制器中创建具有相同行为的多个集合视图?

如何在 SwiftUI 中获取视图的位置

响应 UITextField (UIViewRepresentable) 中的特定按键

用户输入以更改通过点击生成的形状大小

使用 Swiftui 水平修剪 Shape()

我们如何显示关于 UITextField 是 xCode Swift 的建议?

在 Swift 中强制崩溃的最简单方法

Swiftwhere数组扩展

由于编译器中的内部保护级别,无法访问框架 init 中的公共 struct

UILabel 文本不换行