Я сравниваю хранилище массивов в coredata с моим собственным массивом .getting crash на fetchedResultsController.performFetch () - PullRequest
1 голос
/ 08 марта 2019
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")
    }
...