Ios 将子实体追加到核心数据中的实体
我有这个核心数据模型:(DashboardEntity是访问和日志的父级) 现在,我将Ios 将子实体追加到核心数据中的实体,ios,swift,sqlite,inheritance,core-data,Ios,Swift,Sqlite,Inheritance,Core Data,我有这个核心数据模型:(DashboardEntity是访问和日志的父级) 现在,我将DashboardEntity子类化为继承自NSManagedObject的类。我还将可视性分为一个子类日志实体,两者都继承自仪表板实体 我想将一个条目附加到仪表板实体,但我希望该条目是一个可视性,这应该是可能的,因为它继承自仪表板实体,如下所示: // Fething dashboard entity var dashboard = [Dash
DashboardEntity
子类化为继承自NSManagedObject
的类。我还将可视性
分为一个子类日志实体
,两者都继承自仪表板实体
我想将一个条目附加到仪表板实体
,但我希望该条目是一个可视性
,这应该是可能的,因为它继承自仪表板实体
,如下所示:
// Fething dashboard entity
var dashboard = [DashboardEntity]()
let fetchRequest = NSFetchRequest(entityName: "DashboardEntity")
// Returning results as an array of DashboardEntities
do {
let results = try managedContext.executeFetchRequest(fetchRequest)
dashboard = results as! [DashboardEntity]
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
// Point to DashboardEntity from my database
let entity = NSEntityDescription.entityForName("DashboardEntity", inManagedObjectContext:managedContext)
// Here I create an object of type VisitEntity, that takes an extra parameter that converts json to properties
let person: VisitEntity = VisitEntity (entity: entity!, insertIntoManagedObjectContext: managedContext, jsonData: index)
// I append this new object to
do {
try managedContext.save()
dashboard.append(person)
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
但出现了一个错误:
“无法识别的选择器发送到实例”,setManager是选择器
(来自Visitenty,因为它在DashboardEntity上不可用)
如果我有一个X对象的普通数组,并且我想添加一个从中继承的对象,我可以在Swift中这样做,为什么它不能与核心数据NSManagedObjects一起工作
如果我添加一个DashboardEntity对象,效果会很好
这样做的原因是我有一个UITableViewController
,它可以包含访问和日志,这取决于单元格表是否有一些选项或其他选项
谢谢大家 在我看来,这里有两行:
// Point to DashboardEntity from my database
let entity = NSEntityDescription.entityForName("DashboardEntity", inManagedObjectContext:managedContext)
// Here I create an object of type VisitEntity, that takes an extra parameter that converts json to properties
let person: VisitEntity = VisitEntity (entity: entity!, insertIntoManagedObjectContext: managedContext, jsonData: index)
创建Visitenty person实例,为其提供实体参数,NSEntityDescription为“DashboardEntity”,而不是“Visitenty”
因此,当尝试设置manager属性时,应用程序会说DashboardEntity没有成员“manager”
可以尝试将实体描述设置为可见性:
// Point to DashboardEntity from my database
let entity = NSEntityDescription.entityForName("VisitEntity", inManagedObjectContext:managedContext)
// Here I create an object of type VisitEntity, that takes an extra parameter that converts json to properties
let person: VisitEntity = VisitEntity (entity: entity!, insertIntoManagedObjectContext: managedContext, jsonData: index)
该代码不调用
setManager
。什么代码导致错误?是的,就是它!谢谢在此之后,出现了另一个错误,并使用此其他答案修复了该错误: