У меня возникли трудности с получением результатов CoreData после реализации Predicate. Реализация только приводит к 1 fetchedObject, и я не знаю, почему.Реализация предикатов, но в результате чего 1 fetchedObject
class PhotoAlbumViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, MKMapViewDelegate {
var pin: Pin!
lazy var context: NSManagedObjectContext = {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.stack!.context
}()
lazy var fetchedResultsController: NSFetchedResultsController<NSFetchRequestResult> = {
let fetchedRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Photo")
fetchedRequest.sortDescriptors = []
fetchedRequest.predicate = NSPredicate(format: "pins == %@", argumentArray: [self.pin])
return NSFetchedResultsController(fetchRequest: fetchedRequest, managedObjectContext: self.context, sectionNameKeyPath: nil, cacheName: nil)
}()
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
do {
try fetchedResultsController.performFetch()
} catch let error as NSError {
print("Unable to perform fetch: \(error.localizedDescription)")
}
let fetchedObjects = fetchedResultsController.fetchedObjects
print(fetchedObjects.count) //returns 1 only
}
Как субъект фотографии, так и Pin имеют отношения друг с другом.
Любой совет здесь очень ценится, спасибо!
Вам понадобится сортировка дескрипторов, рекомендованная Apple. – Mannopson
Я подозреваю, что только один объект соответствует предикату. – shallowThought
Зачем вам нужен предикат? – Mannopson