Why Picker requires 'Hashable', when the model is already 'Identifiable' ? Why this requirement comes not up on ScrollView?

93 views Asked by At

When moving the following 'ForEach' code into a Picker, the compiler complaints with: "Generic struct 'Picker' requires that 'Currency' conform to 'Hashable'":

        // THIS WORKS PERFECTLY
        ScrollView {
            ForEach(controller.currencyList) { 
                CurrencyView_ForPicker(currency: $0)
            }
        }

         // THIS WILL NOT COMPILE, WHY ????
         Picker("", selection: $controller.currentCurrency) {
             ForEach(controller.currencyList) {
                CurrencyView_ForPicker(currency: $0)
             }
         }
         .pickerStyle(.wheel)

Maybe I have a misunderstanding of "Hashable", but I don't get the reason for this. I thought "Identifiable" is the highest guaranty for uniqueness and it implies 'Hashable'... can somebody please explain, why this happens. What is the logic behind?

0

There are 0 answers