開発環境

> xcodebuild -version
Xcode 12.3
Build version 12C33

スクリーンショット

コード

import SwiftUI

struct ContentView: View {
    
    enum Number: String, CaseIterable, Identifiable {
        case one = "One"
        case two = "Two"
        case three = "Three"
        
        var id: String { rawValue }
    }
    
    var body: some View {
        List {
            ForEach(Number.allCases) { number in
                Text(number.rawValue)  // number.idで同じ結果
            }
        }
    }
}

enumのrawValueは一意

enumのrawValueは一意である必要がある。

ポイント

  • ForEachのDataはcollectionのため、enumに CaseIterable を準拠させる必要がある
  • ForEachのContentは Identifiable を満たす必要がある

参考