Error when getting value from constant : Ambiguous reference to member 'subscript'
我使用具有枚举大小写值的
我不知道如何解决它,它必须是一个陷阱,但是我不知道在哪里,因为
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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"" } |
此行
Ambiguous reference to member 'subscript'
在这种情况下,应使用
1 2 3 | if let urlComponent = codebooks[key.rawValue]{ return urlComponent } |
由于在此行中的
如果是
由于枚举大小写的值肯定是字符串,因此我将这样输入:
1 | let key = FileSpecs.dictType.rawValue //"settings" or"options" |
或
1 2 3 | let key = String(describing: FileSpecs.dictType) return codebooks[key]! |