como posso verificar se uma estrutura está na matriz de estruturas com base em seu campo no Swift3?

No meuswift app eu tenho uma estrutura:

open class MyStruct : NSObject {

    open var coordinate = CLLocationCoordinate2D(latitude: 0, longitude: 0)
    open var username: String? = ""
    open var id: String? = ""
}

E eu crio uma matriz dele:

var array:[MyStruct] = []

Então, eu estou criando um objeto:

let pinOne = MyStruct()
pinOne.coordinate = CLLocationCoordinate2D(latitude: request.latitude, longitude: request.longitude)
pinOne.username = request.username
pinOne.id = request.id

e eu quero adicioná-lo à matriz somente se a matriz não a contiver. Eu tentei com isso:

if(!(self.array.contains(pinOne))){
    self.array.append(pinOne)
}

Mas não funcionou, então pensei que desde que eu tenhoids, eu poderia usar esse campo para comparar objetos. Mas não sei como comparar campos das estruturas neste caso. Você pode me ajudar com isso?

questionAnswers(3)

yourAnswerToTheQuestion