Сбой 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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