Sobes.tech
Junior — Middle

Какви типове обекти се допускат като елементи-ключове в колекция от тип Set?

sobes.tech AI

Отговор от AI

В колекция от тип Set в iOS (например, NSSet или Swift Set), ключовите елементи могат да бъдат обекти, които отговарят на следните изисквания:

  • В Objective-C (NSSet): обектите трябва да поддържат методите -hash и -isEqual: за правилно сравняване и хеширане.
  • В Swift (Set): елементите трябва да съответстват на протокола Hashable, тоест да имат хеш-стойност и възможност за сравнение за равенство.

Това е необходимо, за да може колекцията ефективно да съхранява уникални елементи и бързо да изпълнява операции по търсене.

Пример в Swift:

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

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

Следователно, всякакви обекти, които реализират Hashable (в Swift) или методите hash и isEqual: (в Objective-C), могат да бъдат елементи на Set.