example dictionaries array swift dictionary swift3 hashable

swift - dictionaries - Hacer struct Hashable?



swift dictionary example (1)

Estoy intentando crear un diccionario del tipo [petInfo : UIImage]() pero Type ''petInfo'' does not conform to protocol ''Hashable'' el error. El Type ''petInfo'' does not conform to protocol ''Hashable'' . Mi estructura de información es esta:

struct petInfo { var petName: String var dbName: String }

Así que, de alguna manera, quiero que sea hashable, pero ninguno de sus componentes es un número entero, que es lo que la var hashValue: Int requiere. ¿Cómo puedo hacer que se ajuste al protocolo si ninguno de sus campos son enteros? ¿Puedo usar el dbName si sé que va a ser único para todas las apariciones de esta estructura?


Simplemente devuelva dbName.hashValue desde su función hashValue . Para tu información, el valor de hash no necesita ser único. El requisito es que dos objetos que sean iguales también deben tener el mismo valor hash.

struct PetInfo: Hashable { var petName: String var dbName: String var hashValue: Int { return dbName.hashValue } static func == (lhs: PetInfo, rhs: PetInfo) -> Bool { return lhs.dbName == rhs.dbName && lhs.petName == rhs.petName } }