Andere Leute haben eine ähnliche Frage gestellt, aber die Antworten haben mir nicht geholfen. Ich versuche, eine Tabellenansicht mit Kerndaten zu erstellen, und ich erhalte eine Fehlermeldung, dass mein fetchRequest und/oder managedObjectContext ist nilEine Instanz von NSFetchedResultsController erfordert eine non-nil fetchRequest und managedObjectContext '
class CustomTableViewController: UITableViewController,
NSFetchedResultsControllerDelegate {
var coreDataContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
@available(iOS 10.0, *)
fileprivate lazy var fetchedResultsController: NSFetchedResultsController<Movie> = {
// Initiate the query
let fetchRequest: NSFetchRequest<Movie> = Movie.fetchRequest() as! NSFetchRequest<Movie>
// Sort the data
fetchRequest.sortDescriptors = [NSSortDescriptor(key:"title", ascending: true)]
NSLog("Request: %@, Context: %@", fetchRequest, self.coreDataContext);
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.coreDataContext, sectionNameKeyPath: nil, cacheName: nil)
fetchedResultsController.delegate = self
return fetchedResultsController
}()
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.setToolbarHidden(false, animated: false)
do {
// when view loads, run the fetch (query)
if #available(iOS 10.0, *) {
try self.fetchedResultsController.performFetch()
} else {
// Fallback on earlier versions
}
} catch {
let fetchError = error as NSError
print("Unable to Perform Fetch Request")
print("\(fetchError)")
}
}
Hat jemand irgendwelche Ideen, was falsch ist? Auch nicht sicher, ob es darauf ankommt, aber mein Projekt ist eine Mischung aus beiden Objective-C und Swift
Auch die NSLog("Request: %@, Context: %@", fetchRequest, self.coreDataContext)
aus meinem obigen Code druckt:
Request: (null), Context: <NSManagedObjectContext: 0x1701db4e0>
Ich habe eine Entität namens Film in mein xcdatamodeld mit drei String-Attributen. Ich habe auch eine Klasse für Film wie dieser in seiner eigenen Movie.swift Datei:
import UIKit
import CoreData
class Movie: NSManagedObject {
}
Gibt es etwas Besonderes an deinem Movie-Kurs? – matt
Ich habe am Ende meines ursprünglichen Posts gerade Informationen über meine Filmklasse hinzugefügt. – RobertSmith
Na dann gehts. Sie haben keine Abrufanforderung. – matt