Open1
SwiftUIでOrderedDictionaryを使う
GitHubのOrderedDictionary
のドキュメントを見れば大体わかる。
- 辞書型リテラルからでも、タプルのArrayでも初期化できる。
@State private var orderedDictionary: OrderedDictionary<Int, Int> = .init(
uniqueKeysWithValues: (1...7).map { ($0, 0) }
)
-
List
、ForEach
などはデータがRandomAccessCollection
に準拠してることを求める。OrderedDictionary
自体は準拠してないけれど、そのプロパティであるelements
は準拠しているのでSwiftUIにはそれを渡す。(APIの曖昧さ回避の為にあえてこうなっている。詳しくはドキュメントを参照)
List(orderedDictionary.elements) { (key, value) in
...
}