2016-09-21 122 views
0

我得到一个json数据并将其附加到一个元组中有重复的数组是否有一种方法可以删除它们?这里是如何我得到的JSON数据,并将其设置为元组如何从元组中删除重复

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]) 
} 

元组,但什么获取印刷是

tag: Rice Dishes 
tag: Rice Dishes 
tag: Cakes and Creams 
tag: Cakes and Creams 
tag: Cakes and Creams 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Pastries and Others 
tag: Soups and Sauces 
tag: Soups and Sauces 
.... 

我想删除所有来自这个元组的副本

编辑:

使用数组没有工作,我有一个模型Menus

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)") 

     } 
+0

的可能的复制[删除在阵列中重复的对象(http://stackoverflow.com/questions/34709066/remove-duplicate-objects-in-an-array) – dfri

+0

这是一个元组 – lordxx

+0

我只是检查:/悲伤元组不是一个对象,不适用于AnyObject,所以你不能将它转换为Set或NSSet,我认为元组有相当有限的功能,所以我建议你改变使用Struct或Class,那么它会更好,将它重构为Struct,如下所示答案 – Tj3n

回答

1

如果使用类似于结构的模型值而不是元组

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)) 

请注意,在这种情况下,你失去了原来的排序顺序。

+0

是的没有工作 – lordxx

+0

@lordxx:什么问题? –

+0

好吧,所以当我尝试使用数组它没有工作或者我更新了问题 – lordxx