Sobes.tech
Junior — Middle

Welche Objekttypen dürfen als Schlüsselelemente in einer Sammlung vom Typ Set verwendet werden?

sobes.tech KI

Antwort von AI

In einer Set-Collection in iOS (z.B. NSSet oder Swift Set) können die Schlüssel-Elemente Objekte sein, die die folgenden Anforderungen erfüllen:

  • In Objective-C (NSSet): Objekte müssen die Methoden -hash und -isEqual: unterstützen, um eine korrekte Vergleichs- und Hash-Funktion zu gewährleisten.
  • In Swift (Set): Elemente müssen dem Protokoll Hashable entsprechen, also einen Hash-Wert haben und auf Gleichheit geprüft werden können.

Dies ist notwendig, damit die Sammlung effizient einzigartige Elemente speichern und schnelle Suchoperationen durchführen kann.

Beispiel in Swift:

struct Person: Hashable {
    let id: Int
    let name: String
}

var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))

Daher können Objekte, die Hashable implementieren (in Swift) oder die Methoden hash und isEqual: (in Objective-C), Elemente eines Sets sein.