gpt4 book ai didi

swift - 用 try 解析值?并保护返回不同的值

转载 作者:行者123 更新时间:2023-11-28 15:12:21 25 4
gpt4 key购买 nike

<分区>

使用语言:Swift 3

Xcode 版本:8.3.2 (8E2002)

我在 Data 上有一个扩展,它将数据解析为 Any 类型的 JSONObject

extension Data {
func toJsonObject() -> Any? {
do {
return try JSONSerialization.jsonObject(with: self, options: [])
} catch {
print(error)
}
return nil
}
}

现在奇怪的是,当我使用 guard 时,结果对象似乎与使用 toJsonObject()try?

不同

例如

guard let dictionary = data.toJsonObject() as? [String: Any] else {
return
}

dictionary is now of type [String: Any]

而当我使用它时:

guard let dictionary = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else {
return
}

dictionary is now of type [String: Any]?

第二个代码块的结果不是应该是 [String: Any] 而不是可选的 [String: Any] 吗?

这是 Swift 的错误还是我做错了什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com