gpt4 book ai didi

ios - 如何制作包含特定值的 Swift 字典?

转载 作者:搜寻专家 更新时间:2023-10-31 21:51:48 24 4
gpt4 key购买 nike

通常我会这样创建我的 swift 字典:

var myDict: [String: String]

但是我如何创建一个只有字符串或 bool 值的字典?

如果我像下面的代码那样声明字典

var myDict: [String: Any]

然后我的数组现在可以容纳任何我不想要的对象。有什么方法可以声明 Dictionary 只接受 StringBool 值类型?

[编辑] -用例是:我需要有一个键和值的字典。但我只想将值限制为字符串或 bool 值。没有其他的。目标是最终使用此 Dictionary 转换为 JSON 格式以发送到某个服务器。根据以下答案,我唯一的选择是枚举还是类/结构?我想知道是否有办法使 Bool 和 String 符合某种协议(protocol)?

想法可能是像这样声明字典

var myDict : [String: stringOrBool]

然后像这样填字典

myDict["firstKeyStringValue"] = "my first string value" // This should work
myDict["firstKeyBoolValue"] = true // This should work
myDict["someOtherKey"] = 123 // This should fail

编辑 2基于下面的答案,我选择了协议(protocol)方法,因为它在语法上更容易。但是正如下面评论中提到的鲶鱼,它可能会占用更多的内存。

最佳答案

protocol StringOrBool {
}

extension Bool: StringOrBool {
}

extension String: StringOrBool {
}

var myDict: [String : StringOrBool] = [:]

myDict["testKey"] = "sd" // works
myDict["testKey2"] = false // works
myDict["testKey2"] = 2 // fails

关于ios - 如何制作包含特定值的 Swift 字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34849498/

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