var amentitiesPredicate: NSPredicate?
var predicates = [AnyHashable]()
for amentity in ["1","2","3"] {
predicates.append(NSPredicate(format: "'\(amentity)' IN amenities")) // amenities is the array store in coredata
}
if predicates.count > 0 {
if let predicates = predicates as? [NSPredicate] {
amentitiesPredicate = NSCompoundPredicate(andPredicateWithSubpredicates: predicates)
}
}
// Создание здесь предиката
// -> Хорошо работает с предикатами ниже
let distancePredicate = NSPredicate(format: "distance <= \(self.filterApplied.distanceRange)")
let minimumPricePredicate = NSPredicate(format: "price >= \(filterApplied.leftRangePrice)")
let maximumPricePredicate = NSPredicate(format: "price <= \(filterApplied.rightRangePrice)")
-> //
let andPredicate = NSCompoundPredicate(type: .and, subpredicates: [minimumPricePredicate, maximumPricePredicate, distancePredicate,amentitiesPredicate])
self.fetchedResultsController.fetchRequest.predicate = andPredicate
// извлечение данных из базовых данных
do {
try self.fetchedResultsController.performFetch() // getting crash here
} catch {
printDebug(error.localizedDescription)
print("Fetch failed")
}