我已经在我的应用程序中向我的服务器发出了请求.并发布类似这样的数据.服务器端正在等待所有参数,即使它们是零.但我无法将nil值添加到字典中.
var postDict = Dictionary<String,AnyObject>
postDict[pass]=123
postDict[name]="ali"
postDict[surname]=nil // dictionary still has only pass and name variables.
Run Code Online (Sandbox Code Playgroud)
有没有办法将nil值添加到字典?
如何检查字典中是否存在密钥?我的字典是类型的[Type:Type?].
我不能简单地检查dictionary[key] == nil,因为这可能是由于价值所致nil.
有任何想法吗?
我在playground文件中有以下代码:
extension Dictionary {
func test() {
for key in self.keys {
self[key]
}
}
}
var dict: [String: AnyObject?] = [
"test": nil
]
dict.test()
Run Code Online (Sandbox Code Playgroud)
我今后将把for-each循环中的行称为输出,因为它是相关的.在这个特定的例子中,输出是nil.
当我将for-each循环更改为如下所示:
for key in self.keys {
print(self[key])
}
Run Code Online (Sandbox Code Playgroud)
输出是"Optional(nil)\n".
我真正想要做的是检查nil的值,但是代码:
for key in self.keys {
self[key] == nil
}
Run Code Online (Sandbox Code Playgroud)
输出false.
我尝试的另一件事是:
for key in self.keys {
self[key] as! AnyObject? == nil
}
Run Code Online (Sandbox Code Playgroud)
产生错误:
Could not cast value of type 'Swift.Optional<Swift.AnyObject>' to 'Swift.AnyObject'
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常感谢!