Список SwiftUI с разделами, выбранными из базовых данных - PullRequest
3 голосов
/ 28 марта 2020

Вернувшись к цели - c, я мог бы получить секционированный список объектов из Core Data, используя что-то вроде этого:

self.fetchedResultsController = [[NSFetchedResultsController alloc]
         initWithFetchRequest:fetchRequest
         managedObjectContext:managedObjectContext
           sectionNameKeyPath:@"ispurchased"
                    cacheName:nil];

И тогда NSFetchedResultsController автоматически выдаст мне данные в разделах и строках .

Я впервые экспериментирую со SwiftUI и пытаюсь выяснить, как создать секционированный список вроде этого. Я нашел много примеров, в которых используются некоторые данные консервативных массивов, которые предварительно структурированы в секционированном режиме, но я не могу понять, как выполнить секционированный запрос FetchRequest или как интегрировать его с List.

struct EasyModeList: View {
    @FetchRequest(
        sortDescriptors: [
            NSSortDescriptor(keyPath: \EasyMode.ispurchased, ascending: true),
            NSSortDescriptor(keyPath: \EasyMode.ispurchasable, ascending: false),
            NSSortDescriptor(keyPath: \EasyMode.name, ascending: true),
        ],
        animation: .default)
    var easymodes: FetchedResults<EasyMode>

    @Environment(\.managedObjectContext)
    var viewContext

    var body: some View {
        List {
            ForEach(self.easymodes, id: \.self) { easymode in
                NavigationLink(
                    destination: DetailView(easymode: easymode)
                ) {
                    VStack {
                        Text("\(easymode.name!)")
                    }
                }
            }
        }
    }
}

Легко ли SwiftUI поддерживает такие виды секционированных списков? Есть ли другая парадигма, на которую я должен переключить свой мозг?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...