如何在 Swift 中删除 UIPickerView 中的重复数据

How to remove duplicate data in the UIPickerView in Swift

我可以知道如何删除所有数据都从 Parse 数据库传递的重复数据吗?我只是 select 一列并将该列数据传递给此选择器视图。 我找了query.wherekey,但是没有类似SQL语句的DISTINCT函数,那我应该怎么做才能避免数据重复呢?

当您将项目一项一项添加到您的 self.pickerString 数组中时,只需在将新值添加到数组之前验证该数组是否包含新值。例如:

if !self.pickerString.contains(object["Intake"] as! String) {
     self.pickerString.append(object["Intake"] as! String)
}

swift 中没有删除数组中重复项的内置函数(如果我错了请纠正我)。但是,您可以使用 'extension' 关键字为数组添加新功能:

extension Array {
    func distinct<T: Equatable>() -> [T] {
        var newArray = [T]()
        for item in self {
            if !contains(newArray, item as! T) {
                newArray.append(item as! T)
            }
        }
        return newArray
    }
}

用法:

let s = ["344","333","1","2","333"]
var p = s.distinct() as [String]

我认为您在 Parse 上没有类似 distinct 的东西,您必须下载所有行然后过滤掉相等的值。

对于函数式方法:

func distinct<T: Equatable>(source: [T]) -> [T] {
  var unique = [T]()
  for item in source {
    if !contains(unique, item) {
      unique.append(item)
    }
  }
  return unique
}

[...]
self.pickerString = distinct(objects)
[...]