Skip to content

Instantly share code, notes, and snippets.

@laevandus
Last active March 31, 2023 03:19
Show Gist options
  • Save laevandus/135c0f6d4bd354ac419f436984269a32 to your computer and use it in GitHub Desktop.
Save laevandus/135c0f6d4bd354ac419f436984269a32 to your computer and use it in GitHub Desktop.
@MainActor final class ViewModel: ObservableObject {
private let list: FetchedResultList<Fruit>
init(context: NSManagedObjectContext = PersistenceController.shared.container.viewContext) {
list = FetchedResultList(context: context,
sortDescriptors: [
NSSortDescriptor(keyPath: \Fruit.name, ascending: true)
])
list.willChange = { [weak self] in self?.objectWillChange.send() }
}
var fruits: [Fruit] {
list.items
}
@Published var searchText: String = "" {
didSet {
if searchText.isEmpty {
list.predicate = nil
}
else {
list.predicate = NSPredicate(format: "name contains[cd] %@", searchText)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment