Удалить дублирующиеся структуры в массиве на основе свойства структуры в Swift

Я сделал простую структуру и реализовал протокол 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
        ...
}

Затем в моем проекте я получаю массив [MyModelStruct], что я должен сделать, чтобы удалить все MyModelStruct, которые имеют одинаковый идентификатор

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] 

Как я могу сделать cleanFunction?

Может кто-нибудь помочь, пожалуйста. Спасибо за все. Xcode: версия 7.3.1

Ответы на вопрос(4)

Ваш ответ на вопрос