我做错了什么?
这就是我要保存的内容:
//To save in Core Data
let my_reminder = Reminder(context: CoreDataService.context)
my_reminder.name = "a title"
my_reminder.date = "a date"
my_reminder.content = "some text"
CoreDataService.saveContext() //a class that handles core data
这是我的 CoreDataService 类:
import Foundation
import CoreData
class CoreDataService {
static var context: NSManagedObjectContext {
return persistentContainer.viewContext
}
private init(){}
// MARK: - Core Data stack
static var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "project_name")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
// MARK: - Core Data Saving support
static func saveContext () {
let context = persistentContainer.viewContext
if context.hasChanges {
do {
try context.save()
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
}
}
错误消息:
An NSManagedObject of class 'Reminder' must have a valid NSEntityDescription.
我一次又一次地收到错误,我需要更新plist吗?我检查了所有内容,但似乎仍然不起作用
(顺便说一句,我正在使用 Swift 4 和 XCODE 9)。
最佳答案
抱歉,我不记得用户名了,但有人建议我更改行:
let my_reminder = Reminder(context: CoreDataService.context)
类似:
if let my_reminder = NSEntityDescription.insertNewObject(forEntityName: "Reminder", into: CoreDataService.context) as? Reminder {
print("Start saving")
my_reminder.name = "a title"
my_reminder.date = "a date"
my_reminder.content = "some text"
CoreDataService.saveContext()
}
另外,我的 CoreDataService 类中出现了问题,NSPercientContainer 没有收到项目的名称,而是收到 XCDataModeld 文件的名称,这往往是相同的,但在我的情况下不是:
let container = NSPersistentContainer(name: "Model")
关于ios - 我想保存到核心数据,但我不断收到 'An NSManagedObject of class ' 提醒“必须有有效的 NSEntityDescription”。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50279777/