Say that in this example here, the struct
struct Reminder: Identifiable { var id: String = UUID().uuidString var title: String var dueDate: Date var notes: String? = nil var isComplete: Bool = false var city: String }
is modified slightly to include a city
string. In the collection view that displays the reminders, I'd like each section to be each unique city, so if two reminder cells have the same city
string then they would be in the same section of the collection view.
The progress I've made to this end is sorting the reminders
array so that reminders cells are grouped together by city
func updateSnapshot(reloading ids: [Reminder.ID] = []) { var snapshot = Snapshot() snapshot.appendSections([0]) let reminders = reminders.sorted { $0.city } snapshot.appendItems(reminders.map { $0.id }) if !ids.isEmpty { snapshot.reloadItems(ids) } dataSource.apply(snapshot) }
Where I'm stuck is in coming up with a way to make the snapshot represent sections by unique cities, and not just one flat section of all reminders.