Я создаю приложение SwiftUI, в котором оно показывает список значений, содержащих их дату и продолжительность. На данный момент ContentView
просто перечисляет все значения (дата по возрастанию).
Я хотел бы добиться того, чтобы объекты были сгруппированы по дате и в соответствующие разделы, например:
Текущий
- Раздел: «дата»
- Продолжительность: 50, Дата: 1 января
- Продолжительность: 48, Дата: 1 января
- Продолжительность: 21, Дата: 2 января
- Продолжительность: 57, Дата: 3 января
Цель
- Раздел: "1 января"
- Продолжительность: 50, Дата: 1 января
- Продолжительность: 48, Дата: 1 января
- Раздел: «2 января»
- Продолжительность: 21, Дата: 2 января
- Раздел: «3 января»
- Продолжительность: 57, Дата: 3 января
Любая помощь очень ценится, большое спасибо.
Код
// MARK: - ContentView
struct ContentView: View {
// MARK: - Variables
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(fetchRequest: EntityCore.fetch()) var entities
// MARK: - Body
var body: some View {
NavigationView {
List {
Section(header: Text("Date")) {
ForEach(entities) { (entity) in
EntityView(entity: entity)
}
}
}.listStyle(GroupedListStyle())
.navigationBarTitle(Text("Entities"))
}
}
}
// MARK: - PlankCore
public class EntityCore: NSManagedObject, Identifiable {
// MARK: - Variables
@NSManaged public var duration: Int64
@NSManaged public var date: Date?
// MARK: - Fetch
static func fetch() -> NSFetchRequest<EntityCore> {
let request = EntityCore.fetchRequest() as! NSFetchRequest<EntityCore>
request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: true)]
return request
}
}