Sobes.tech
Junior — Middle

Ce tipuri de obiecte pot fi utilizate ca elemente-cheie într-o colecție de tip Set?

sobes.tech AI

Răspuns de la AI

În colecția de tip Set pe iOS (de exemplu, NSSet sau Swift Set), elementele-cheie pot fi obiecte care îndeplinesc următoarele cerințe:

  • În Objective-C (NSSet): obiectele trebuie să suporte metodele -hash și -isEqual: pentru comparare și hashare corectă.
  • În Swift (Set): elementele trebuie să respecte protocolul Hashable, adică să aibă o valoare hash și posibilitatea de a fi comparate pentru egalitate.

Acest lucru este necesar pentru ca colecția să poată stoca eficient elemente unice și să execute rapid operațiuni de căutare.

Exemplu în Swift:

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

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

Prin urmare, orice obiect care implementează Hashable (în Swift) sau metodele hash și isEqual: (în Objective-C) poate fi un element al Set-ului.