Per la mia app iOS Ho un modello simileCome posso creare un set di oggetti personalizzati (Swift)?
class Person {
var Id: Int
var Name: String
init(id: Int, name: String?) {
self.Id = id
self.Name = name ?? ""
}
}
poi in seguito nel mio ViewController
quando carico i dati dal server aggiungo alcune persone di una matrice
class ViewController: UIViewController {
var people:[Person] = []
override func viewDidLoad() {
self.loadPeople()
}
func loadPeople() {
// This data will be coming from a server request
// so is just sample. It could have users which
// already exist in the people array
self.people.append(Person(id: "1", name: "Josh"))
self.people.append(Person(id: "2", name: "Ben"))
self.people.append(Person(id: "3", name: "Adam"))
}
}
Quello che sono ora provare a fare questo è trasformare l'array people
in un Set<Person>
in modo che non aggiunga duplicati. È possibile fare o devo cambiare la mia logica?
Personalmente uso 'XOR' per combinare hash, ma +1 per includere il protocollo' Hashable' nella risposta. –
hastable eredita da Equitable, quindi dichiarare la classe come 'class Person: Hashable {...}' sarebbe sufficiente. Naturalmente, aggiungere Equitable esplicitamente non fa male. –
@ egor.zhdan potresti spiegare i bit del turno 15 parte e perché hai usato 15 lì? –