gpt4 book ai didi

ios - 用其他自定义值替换零值

转载 作者:搜寻专家 更新时间:2023-11-01 07:28:08 26 4
gpt4 key购买 nike

我正在使用用 Swift 编写的钥匙串(keychain)包装器。当值为 nil 时,我使用的这个包装器会自动将数据保存为“nil”,而不是保存为实际的 nil 值。

For ex, ["last_name" : "nil"].

在我的 iOS 应用程序的一个标签中,我返回了 last_name 值。令我困扰的是,标签中的文本在本应没有任何内容的情况下却显示为“nil”。

我记得在 Swift 中有类似 A ?? 的语法。如果 A 无效,则 B 代替 B。但我现在想不起来了。在我的应用程序中,我想要如下内容:

if the value I'm looking for is nil, then input "" instead of "nil"
If keychain["last_name"] == nil ?? ""

我知道这是一个可怕的解释,但这就是我所能想到的。

最佳答案

??nil coalescing operator .它用于展开可选项 — a ?? ba != nil 的简写?一种! : b.

您可能想改用三元运算符。您甚至可以像这样组合它们:

let lastName = keychain["last_name"] == "nil" ? "" : (keychain["last_name"] ?? "")

也就是说,在获取钥匙串(keychain)后立即过滤掉这些响应可能更容易,而不是每次都检查:

var keychain = ["first_name" : "aaron", "last_name" : "nil"]

keychain.forEach { if $0.1 == "nil" { keychain.removeValueForKey($0.0) } }

print(keychain) //["first_name": "aaron"]

$0 是一个速记参数名称。这是相同代码的长格式版本:

keychain.forEach { (key, value) -> () in
if value == "nil" {
keychain.removeValueForKey(key)
}
}

关于ios - 用其他自定义值替换零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34517603/

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