gpt4 book ai didi

swift - 从常量 : Ambiguous reference to member 'subscript' 获取值时出错

转载 作者:可可西里 更新时间:2023-11-01 00:50:52 24 4
gpt4 key购买 nike

我正在使用 enumtuple 以及枚举大小写的值。我无法从 [String: String] 常量中获取值。

我不知道如何修复它,它必须是一个陷阱,但我不知道在哪里,因为 key 肯定是字符串:

enum DictTypes : String {
case settings
case options
case locations
}
enum FileTypes : String {
case json
case pList
}

func getCodebookUrlComponent() -> String
{
var FileSpecs: (
dictType: DictTypes,
fileType: FileTypes,
redownload: Bool
) = (.settings, .json, true)

let codebooks = [
"settings" : "settings",
"options" : "options"
]

let key = self.FileSpecs.dictType // settings or options

if let urlComponent = codebooks[key] {

return urlComponent
}

return ""
}

这一行 if let urlComponent = codebooks[key] 出现错误:

Ambiguous reference to member 'subscript'

最佳答案

对于这种情况,您应该使用 .rawValue:

if let urlComponent = codebooks[key.rawValue]{
return urlComponent
}

出现此问题是因为 let key = self.FileSpecs.dictType 在此行中您收到的 key 是 FileSpecs 类型。而在 Array 中实现的 subscript 将不符合该值类型。

rawValue 在您的情况下返回您在 enum 中分配的字符串值。

关于swift - 从常量 : Ambiguous reference to member 'subscript' 获取值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39617591/

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