iOS Swift: matriz de filters para elementos únicos

Tengo una matriz que se parece a esto:

let records = [ ["created": NSDate(timeIntervalSince1970: 1422600000), "type": 0], ["created": NSDate(timeIntervalSince1970: 1422600000), "type": 0], ["created": NSDate(timeIntervalSince1970: 1422600000), "type": 1], ["created": NSDate(timeIntervalSince1970: 1422600000), "type": 1], ["created": NSDate(timeIntervalSince1970: 1422700000), "type": 2], ["created": NSDate(timeIntervalSince1970: 1422700000), "type": 2], ] 

¿Cómo filtraría la matriz solo en loggings con types únicos?

Tratar:

 var seenType:[Int:Bool] = [:] let result = records.filter { seenType.updateValue(false, forKey: $0["type"] as Int) ?? true } 

Básicamente este código es un atajo de lo siguiente:

 let result = records.filter { element in let type = element["type"] as Int // .updateValue(false, forKey:) let retValue:Bool? = seenType[type] seenType[type] = false // ?? true if retValue != nil { return retValue! } else { return true } } 

updateValue of Dictionary devuelve el valor anterior si la key existe, o nil si es una key nueva.

Tiene que haber una forma más rápida de hacer esto, pero funciona.

 var unique = [Int: AnyObject]() for record in records { if let type = record["type"] as? Int { unique[type] = record } } 

introduzca la descripción de la imagen aquí