SwiftUI iterating through dictionary with ForEach

后端 未结 7 1846

Is there a way to iterate through a Dictionary in a ForEach loop? Xcode says

Generic struct \'ForEach\' requires that \'[Str

相关标签:
7条回答
  • 2020-12-03 14:17

    Simple answer: no.

    As you correctly pointed out, a dictionary is unordered. The ForEach watches its collection for changes. These changes includes inserts, deletions, moves and update. If any of those changes occurs, an update will be triggered. Reference: https://developer.apple.com/videos/play/wwdc2019/204/ at 46:10:

    A ForEach automatically watches for changes in his collection

    I recommend you watch the talk :)

    You can not use a ForEach because:

    1. It watches a collection and monitors movements. Impossible with an unorered dictionary.
    2. When reusing views (like a UITableView reuses cells when cells can be recycled, a List is backed by UITableViewCells, and I think a ForEach is doing the same thing), it needs to compute what cell to show. It does that by querying an index path from the data source. Logically speaking, an index path is useless if the data source is unordered.
    0 讨论(0)
提交回复
热议问题