其他人已經提出了類似的問題,但給出的答案並沒有幫助我。我想創建與核心數據表視圖,我不斷收到錯誤消息,我的fetchRequest和/或managedObjectContext是零NSFetchedResultsController的一個實例需要一個非零的fetchRequest和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)")
}
}
沒有人有任何的想法有什麼不對?另外,如果不知道它的問題,但我的項目是既Objective-C和斯威夫特的混合
此外,NSLog("Request: %@, Context: %@", fetchRequest, self.coreDataContext)
從我上面的代碼打印出:
Request: (null), Context: <NSManagedObjectContext: 0x1701db4e0>
我有一個叫做電影中的實體我的xcdatamodeld具有三個String屬性。我還創建了這樣的電影一類在自己的Movie.swift文件:
import UIKit
import CoreData
class Movie: NSManagedObject {
}
您的電影課有什麼特別之處嗎? – matt
我剛剛在原始帖子的結尾添加了關於我的Movie類的信息。 – RobertSmith
好吧,你走了。您沒有獲取請求。 – matt