到目前为止,我可以在一个快速文件中创建自己的数据模型。就像是:
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
类没有用。