gpt4 book ai didi

ios - 尝试使用枚举过滤值时出现模棱两可的错误

转载 作者:行者123 更新时间:2023-11-28 06:42:55 25 4
gpt4 key购买 nike

我有一个过滤器,我试图用它来比较一个值与另一个值。这是我正在使用的枚举:

enum SomeEnum: String {

case first = "Hey"
case second = "There"
case third = "Peace"

static let values = [first, second, third]

func pickOne() -> String {
switch self {
case .first:
return "value 1"
case .second:
return "value 2"
case .third:
return "value 3"
}
}

这是我尝试过滤和查找匹配值的地方:

array.append(SomeEnum.values.filter({$0.rawValue ==  anotherArray["id"] as! String}))

我最终得到了一个不明确的错误:

Cannot convert value of type '[SomeEnum]' to expected argument type 'String'

有什么想法吗?

最佳答案

问题是,SomeEnum.values 返回类型是 [SomeEnum] 而不是 String

append 函数期望参数为 String,而不是 [SomeEnum]

这是您需要更改的内容:

  1. append 更改为 appendContentsOf,因为 filter 函数返回一个数组,而不是单个值
  2. [SomeEnum] 更改为 [String],因为您要将它添加到 [String] 数组,如下所示。<

这是修复:

array.appendContentsOf(SomeEnum.values.filter({ $0.rawValue == "SomeString" }).map({ $0.PickOne() }))

关于ios - 尝试使用枚举过滤值时出现模棱两可的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37428931/

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