У меня есть приложение, которое использует Core Data с FetchRequest, который заполняет список. Я хотел бы иметь возможность позволить пользователям искать / фильтровать список, вводя в строку поиска. Я перепробовал несколько подходов, но не могу заставить его работать.
NSManagedObject
public class Item: NSManagedObject, Identifiable {
@NSManaged public var createdAt: Date?
@NSManaged public var title: String?
@NSManaged public var details: String?
@NSManaged public var tag: String?
}
Вот мой запрос FetchRequest и состояние для поиска
@FetchRequest(fetchRequest: Item.getAllData()) var items: FetchedResults<Item>
@State private var searchTerm: String = ""
Здесь я пытаюсь разрешить фильтрованию списка
VStack {
SearchBar(text: $searchTerm)
List {
ForEach(self.items.filter({
self.searchTerm.isEmpty ? true :
$0.localCaseInsensitiveContains(self.searchTerm)
}), id: \.self){ item in
ItemView(title: item.title ?? "Title", details: item.details ?? "Details", tag: item.tag ?? "Tag")
}
}
}
С таким кодом, как сейчас, я получаю следующую ошибку
Значение типа ' Элемент «не имеет члена» localizedCaseInsensitiveContains '