尝试使用枚举过滤值时出现模糊错误

时间:2016-05-25 06:02:34

标签: ios swift

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




 枚举SomeEnum:String {

 case first =“嘿”
 case second =“There”
 case third =“Peace”

 static let values = [first,second,third]

 func pickOne() - >字符串{
切换自我{
 case.first:
返回“值1”
 case .second:
返回“值2”
 case .third:
返回“值3”
 }
}
  




以下是我尝试过滤和查找匹配值的位置:


 

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




我最终得到一个含糊不清的错误:




 无法将'[SomeEnum]'类型的值转换为预期的参数输入'String'
  




任何想法?




1 个答案:

答案 0 :(得分:1)

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

append函数要求参数为String,而不是[SomeEnum]

这就是你需要改变的地方:

  1. append更改为appendContentsOf,因为filter函数返回一个数组,而不是单个值
  2. [SomeEnum]更改为[String],因为您要将其添加到[String]数组中,就像这样。
  3. 这是修复:

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