Это приложение с меню. Существует функция, которая извлекает пункты меню из вызова Rest и добавляет их в объект Core Data. Я вполне уверен, что мне позвонят и вставят 12 элементов в сущность «Блюдо».
У меня есть представление, которое пытается позволить вам просмотреть все блюда, оно включает панель поиска для сужения поиска. Когда я впервые вижу это представление загруженным, оно показывает 24 блюда; каждое блюдо появляется дважды. Код для этого:
Код: Выделить всё
NavigationView {
FetchedObjects (
predicate:buildPredicate(),
sortDescriptors: buildSortDescriptors()
) {
(dishes: [Dish]) in
List {
Text(String(dishes.count) + " dishes")
ForEach(dishes, id: \.self) {
dish in
DisplayDish(dish).onTapGesture {apGesture in
self.showAlert.toggle()
}
}
}
}
}.searchable(text: $searchText, prompt: "Search items")
Предикат строится следующим образом:
Код: Выделить всё
private func buildPredicate() -> NSPredicate {
if searchText.isEmpty {
NSPredicate(value: true)
} else {
NSPredicate(format: "name CONTAINS[cd] %@", searchText)
}
}
Я понимаю, что есть много кода, который я не включил; если я упустил что-то, что кажется важным/необходимым, я могу дополнить. Еще одна вещь, которую я заметил и которая может иметь значение, это то, что функция, загружающая блюда, действительно вызывается дважды. Но первый вызов получает NSError об отмене, предположительно потому, что второй приземляется и заменяет его, и когда пыль очищается, функция загрузки фактически сохраняет только один раз, и запрос сразу после этого показывает 12 блюд, а не 24.
Будем очень благодарны за любую помощь.>
Подробнее здесь: https://stackoverflow.com/questions/798 ... hedobjects
Мобильная версия