gpt4 book ai didi

ios - Swift:展开可选项和 NSNull

转载 作者:行者123 更新时间:2023-11-28 15:30:07 27 4
gpt4 key购买 nike

if let action = self.info?["action"] {
switch action as! String {
....
}
} else {...}

在此示例中,“action”始终作为 self.info 中的键存在。

一旦第二行执行,我得到:

Could not cast value of type 'NSNull' (0x1b7f59128) to 'NSString' (0x1b7f8ae8).

知道即使我打开了 action 也可以是 NSNull 吗?我什至尝试过“if action != nil”,但它仍然以某种方式漏掉并导致 SIGABRT。

最佳答案

NSNull 是一个特殊值,通常由 JSON 处理产生。它与 nil 值非常不同。而且您不能将对象从一种类型强制转换为另一种类型,这就是您的代码失败的原因。

您有几个选择。这是一个:

let action = self.info?["action"] // An optional
if let action = action as? String {
// You have your String, process as needed
} else if let action = action as? NSNull {
// It was "null", process as needed
} else {
// It is something else, possible nil, process as needed
}

关于ios - Swift:展开可选项和 NSNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44807261/

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