Eliminar estructuras duplicadas en una matriz basada en la propiedad de estructura en Swift

Hice una estructura simple e implementé el protocolo Equatable:

extension MyModelStruct: Equatable {}

func ==(lhs: NModelMatch, rhs: NModelMatch) -> Bool {
    let areEqual = lhs.id == rhs.id
    return areEqual
}

public struct MyModelStruct {

    var id : String?
    var staticId : String?

    init(fromDictionary dictionary: NSDictionary){
        id = dictionary["id"] as? String
        ...
}

Luego, en mi proyecto, obtengo una matriz de [MyModelStruct], lo que debo hacer es eliminar todos los MyModelStruct que tienen la misma identificación

let val1 = MyModelStruct(id:9, subId:1)
let val2 = MyModelStruct(id:10, subId:1)
let val3 = MyModelStruct(id:9, subId:10)

var arrayOfModel = [val1,val2,val3]; // or set but i do not know how to use a set
var arrayCleaned = cleanFunction[M2,M3] 

¿Como puedo hacer la función cleanFunction?

Puede alguien ayudar, por favor. Gracias por todo. Xcode: Versión 7.3.1

Respuestas a la pregunta(4)

Su respuesta a la pregunta