Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将子实体追加到核心数据中的实体_Ios_Swift_Sqlite_Inheritance_Core Data - Fatal编程技术网

Ios 将子实体追加到核心数据中的实体

Ios 将子实体追加到核心数据中的实体,ios,swift,sqlite,inheritance,core-data,Ios,Swift,Sqlite,Inheritance,Core Data,我有这个核心数据模型:(DashboardEntity是访问和日志的父级) 现在,我将DashboardEntity子类化为继承自NSManagedObject的类。我还将可视性分为一个子类日志实体,两者都继承自仪表板实体 我想将一个条目附加到仪表板实体,但我希望该条目是一个可视性,这应该是可能的,因为它继承自仪表板实体,如下所示: // Fething dashboard entity var dashboard = [Dash

我有这个核心数据模型:(DashboardEntity是访问和日志的父级)

现在,我将
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
。什么代码导致错误?是的,就是它!谢谢在此之后,出现了另一个错误,并使用此其他答案修复了该错误: