SwiftData @Query раздавит, когда параметр фильтра не равен нулю?IOS

Программируем под IOS
Anonymous
SwiftData @Query раздавит, когда параметр фильтра не равен нулю?

Сообщение Anonymous »

Я хочу использовать динамическое изменение предиката, чтобы разные списки могли отображать разные данные. Однако когда я нажимаю «NavigationLink», чтобы войти в ReminderListView(), приложение зависает и не отвечает.
Изображение

Код: Выделить всё

struct ReminderListView: View {
// ...
@Query private var reminderList: [Reminder]

init(filter: ReminderPredicate) {
let sortDescriptors: [SortDescriptor]
let filterPredicate: Predicate

switch filter {
case .filterAllReminder:
filterPredicate = #Predicate { $0.createDate != nil }
sortDescriptors = [SortDescriptor(\Reminder.completeDate, order: .forward)]
case .filterFinishedReminder:
filterPredicate = #Predicate { $0.completeDate != nil}
sortDescriptors = [SortDescriptor(\Reminder.completeDate, order: .forward)]
}

_reminderList = Query(filter: filterPredicate, sort: sortDescriptors)
}
// ...
}
ReminderPredicate — это перечисление.
Если я изменю фильтр на nil Query(), тогда это работает: _reminderList = Query(filter: nil, sort: sortDescriptors)
Я также пробовал передать предикат напрямую, но это не работает: _reminderList = Query(filter: # Predicate { $0.createDate != nil }, sort: sortDescriptors)

Подробнее здесь: https://stackoverflow.com/questions/786 ... is-not-nil

Вернуться в «IOS»