web-dev-qa-db-fra.com

Comment confirmer une énumération au protocole identifiable à Swift?

J'essaie de faire une liste avec les valeurs brutes des cas d'une énumération avec le cadre nouveau SWIFTUI. Cependant, je rencontre des difficultés avec la conformité des "données" au protocole identifiable et je ne trouve vraiment pas de trouver des informations sur la manière de le faire. Il me dit "Initializer 'init (_: RowContent :)' nécessite que" Data "est conforme à" identifiable "" Le Stub me fournit une variable d'objets dans la dernière extension, mais je ne sais pas que dois-je retourner. Pourriez-vous me dire comment le faire? Comment puis-je conforme des données à identifiables afin que je puisse faire une liste avec les valeurs brutes?

enum Data: String {
    case firstCase = "First string"
    case secondCase = "Second string"
    case thirdCase = "Third string"
}

extension Data: CaseIterable {
    static let randomSet = [Data.firstCase, Data.secondCase]
}

extension Data: Identifiable {
    var id: ObjectIdentifier {
        return //what?
    }

}

//-------------------------ContentView------------------------
import SwiftUI

struct Lala: View {
    var name: String

    var body: some View {
        Text(name)
    }
}

struct ContentView: View {
    var body: some View {
        return List(Data.allCases) { i in
            Lala(name: i.rawValue)
        }
    }
}

Vous pouvez essayer de cette façon:

enum MyEnum: Identifiable {
    case valu1, valu2
    
    var id: Int {
        get {
            hashValue
        }
    }
}
0
Olcay Ertaş