因此,我有一个名为“问题”的自定义类,其中我具有具有多个数据类型的多个属性,并且要将其存储在Core Data中。我在CoreData“问题”中创建了一个具有可转换属性的“问题”的新实体-我将自定义类设置为“问题”类。
我还添加了
@objc(Issue)
class Issue: NSManagedObject { ... }
所以在这里,我在另一个类中处理CoreData内容:
func saveIssueTest() {
let managedContext = AppDelegate().persistentContainer.viewContext
guard let entity = NSEntityDescription.entity(forEntityName: "Issues", in: managedContext) else {
return
}
let issue = NSManagedObject(entity: entity, insertInto: managedContext) as! Issue
issue.setIssueDescription(_issueDescription: "Test")
do {
try managedContext.save()
print("SAVED")
} catch let error as NSError {
print(error.localizedDescription)
}
fetchIssueTest()
}
func fetchIssueTest() {
let managedContext = AppDelegate().persistentContainer.viewContext
let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Issues")
do {
let managedObjects = try managedContext.fetch(fetchRequest)
if let first = managedObjects.first as? Issue {
print(first)
}
print(managedObjects)
} catch let error as NSError {
print(error.localizedDescription)
}
}
我可以保存它而没有错误,但是在检索它时-我得到了对象,但每个字段均为nil,例如,当我想访问“ first”的'issueDescription'时,它崩溃了,因为我解开了nil可选项。
“第一”看起来像这样:
[<Issue: 0x6000005104d0> (entity: Issues; id: 0xe14b2223f0979a93 <x-coredata://47695D67-42A2-4922-83B8-34453E6DE104/Issues/p1> ; data: <fault>)]
有人知道我该怎么做吗?对不起,我从来没有使用CoreData而不对模型中的属性建模并使用'setValue(...)。