Every time I run the predicate I get an error
xCode version 15.3
Destination macOS Sonoma, 14.4
Swift 5
@AppStorage(UserDefaults.Constants.selectedFilterName) static var selectedFilterName: String?
@Query(filter: #Predicate<Filter> {
$0.name == (selectedFilterName ?? "")
}) var selectedFilters: [Filter]
Model:
@Model
class Filter: Hashable, Identifiable {
var id: String { name }
let name: String
}
Stack:
can't use NULL on left hand side
(
0 CoreFoundation 0x000000019c17eccc __exceptionPreprocess + 176
1 libobjc.A.dylib 0x000000019bc66788 objc_exception_throw + 60
2 CoreData 0x00000001a29cb744 -[NSSQLGenerator newSQLStatementForRequest:ignoreInheritance:countOnly:nestingLevel:nestIsWhereScoped:requestContext:] + 4040
3 CoreData 0x00000001a29ca62c -[NSSQLiteAdapter newSelectStatementWithFetchRequestContext:ignoreInheritance:] + 140
4 CoreData 0x00000001a29ca564 -[NSSQLFetchRequestContext _createStatement] + 52
5 CoreData 0x00000001a29ca34c -[NSSQLFetchRequestContext fetchStatement] + 172
6 CoreData 0x00000001a29ca22c -[NSSQLFetchRequestContext executeRequestCore:] + 28
7 CoreData 0x00000001a29c9e94 -[NSSQLStoreRequestContext executeRequestUsingConnection:] + 300
8 CoreData 0x00000001a29c9bbc __52-[NSSQLDefaultConnectionManager handleStoreRequest:]_block_invoke + 60
@JoakimDanielson and @malhal - thanks!
Answer is:
@Query(filter: Predicate<Filter>.false) var selectedFilters: [Filter]
init() {
selectedFilterName = ""
var fetchDescriptor = FetchDescriptor<Filter>(predicate: #Predicate { $0.name == (selectedFilterName ?? "") })
fetchDescriptor.fetchLimit = 1
_filters = Query(fetchDescriptor)
}