到目前为止,我可以在一个快速文件中创建自己的数据模型。就像是:

User.swift:

class User {
    var name: String
    var age: Int

    init?(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}


当我创建一个核心数据模型时,即一个UserData实体,(1)我是否必须添加与我自己的数据模型中相同数量的属性,因此在这种情况下为两个-名称和年龄?
或者(2)它可以仅具有一个属性吗?名称(而不是年龄)?

我的核心数据模型:

用户数据


名称
年龄


我遇到的第二个问题是,当我启动获取请求时,我在Xcode中遇到一个奇怪的错误。这就是我启动fetchRequest的方式(按照文档中的建议设置了AppDelegate):

var users = [User]()
var managedObjectContext: NSManagedObjectContext!
...

func loadUserData() {

    let dataRequest: NSFetchRequest<UserData> = UserData.fetchRequest()

    do {
        users = try managedObjectContext.fetch(dataRequest)
    ....
    } catch {
        // do something here
    }
}


我得到的错误是“无法将类型'[UserData]的值分配给类型[User]。

这个错误是什么意思?官方文档中描述了一些错误,但并非特别如此。

最佳答案

您不能将自定义(简单)类用作Core Data模型。

用作核心数据模型的类必须是NSManagedObject的子类。

如果您的实体名为UserData,则必须声明该数组

var users = [UserData]()




User类没有用。

10-08 05:29
查看更多