在Core Data中使用现有的自定义类

时间:2019-06-07 13:22:59

标签: swift core-data

因此,我有一个名为“问题”的自定义类,其中我具有具有多个数据类型的多个属性,并且要将其存储在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(...)。

0 个答案:

没有答案