Sobes.tech
Junior — Middle

Welke soorten objecten mogen worden gebruikt als sleutels in een Set-collectie?

sobes.tech AI

Antwoord van AI

In een collectie van het type Set op iOS (bijvoorbeeld NSSet of Swift Set) kunnen de sleutel-elementen objecten zijn die aan de volgende eisen voldoen:

  • In Objective-C (NSSet): objecten moeten de methoden -hash en -isEqual: ondersteunen voor correcte vergelijking en hashing.
  • In Swift (Set): de elementen moeten voldoen aan het protocol Hashable, dat wil zeggen, een hash-waarde hebben en vergelijkingsmogelijkheden voor gelijkheid.

Dit is nodig zodat de collectie efficiënt unieke elementen kan opslaan en snel zoekbewerkingen kan uitvoeren.

Voorbeeld in Swift:

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

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

Dus kunnen alle objecten die Hashable implementeren (in Swift) of de methoden hash en isEqual: (in Objective-C) bevatten, elementen van een Set zijn.