Ios 如何从元组中删除重复项

Ios 如何从元组中删除重复项,ios,swift,uitableview,tuples,Ios,Swift,Uitableview,Tuples,我正在获取一个json数据并将其附加到一个元组中此数组中存在重复项有什么方法可以删除它们吗?下面是我如何获取json数据并将其设置为tuple if let hru = ($0["Menu"]["title"]).string{ let uw = ($0["name"]).string let tagloc = (tag: hru, location: uw) self.resultTuples.append(tagloc) } 我像这样打印元组 for

我正在获取一个json数据并将其附加到一个元组中此数组中存在重复项有什么方法可以删除它们吗?下面是我如何获取json数据并将其设置为tuple

 if let hru = ($0["Menu"]["title"]).string{
     let uw = ($0["name"]).string
     let tagloc = (tag: hru, location: uw)
     self.resultTuples.append(tagloc)
   }
我像这样打印元组

for var i = 0; i < self.resultTuples.count; ++i{
      print(self.resultTuples[i])
 }
我想删除这个元组中的所有重复项

编辑:

使用数组不起作用我有一个模型
菜单

if let hru = ($0["Menu"]["title"]).string{

     var men = Menus(nam: hru)
      let set = NSSet(array: self.menus)
     self.menus = set.allObjects as! [Menus]
      self.menus.append(men)

    }

     for i in self.menus{
            print("MENUSS \(i.name)")

      }

在插入之前,可以使用以下函数检查元组是否包含在特定数组中:

func containsTuple(arr: [(String, String)], tup:(String, String)) -> Bool {    
     let (c1, c2) = tup

     for (v1, v2) in arr {
        if v1 == c1 && v2 == c2 {
            return true
        }
     }

    return false
}

更多信息请参见此处

,如果您使用结构之类的模型值而不是元组

struct TagAndLocation: Hashable {

    let tag: String
    let location: String

    var hashValue: Int { return tag.hashValue }
}

func ==(left:TagAndLocation, right: TagAndLocation) -> Bool {
    return left.tag == right.tag && left.location == right.location
}
您可以利用
Set
功能删除重复项

let results: [TagAndLocation] = ...
let uniqueResults = Array(Set(results))
请注意,在这种情况下,您将丢失原始排序顺序


这可能是一个重复的元组:很遗憾,元组不是一个对象,不能与任何对象一起工作,所以你不能将其转换为Set或NSSet,我认为元组的功能相当有限,所以我建议你改为使用Struct或Class,这样会更好,如果你有一个元组数组,请按照下面的答案将其重构为Struct(
resultTuples
?),所以技术是一样的。好的@Tj3n我想我会是一个正常人array@lordxx:问题是什么?好的,所以当我尝试使用数组时,它也不起作用,我更新了问题
let results: [TagAndLocation] = ...
let uniqueResults = Array(Set(results))