Sobes.tech
Junior — Middle

Da li je moguće koristiti objekat kao ključ u kolekciji Dictionary ili sličnoj strukturi podataka?

sobes.tech АИ

Одговор од АИ

У iOS (Swift или Objective-C), могу се користити објекти као кључеви у речницима (Dictionary), али тај објекат мора испуњавати одређене захтеве.

У Swift-у, кључеви речника морају бити у складу са протоколом Hashable, што значи да објекат мора имати правилно реализоване методе хеширања и поређења за једнакост. Ово је неопходно да би речник ефикасно чувао и тражио вредности по кључевима.

Пример коришћења прилагођеног објекта као кључа:

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

var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"

Ако објекат не имплементира Hashable, не може се користити као кључ. У Objective-C, кључеви речника морају бити објекти који имплементирају методе -hash и -isEqual:.

Стога, објекти могу бити коришћени као кључеви ако правилно имплементирају хеширање и поређење.