32位iOS设备发生CoreData错误

时间:2018-06-19 18:34:04

标签: ios swift xcode core-data

我的应用程序具有一项功能,其中可以存储许多NSManagedObjects,在本例中为dataSets(存储:时间,deviceName,setName,dataPoints(OrderedSet))。一个视图控制器是一个表视图VC,它列出了所有存储的数据集。每个集合都有其自己的单元格,带有删除按钮,重命名按钮,打开按钮,日期标签和设备名称标签。当我按下打开按钮时,我的问题仅出现在32位设备上。

按下打开按钮时将调用此函数:

func openGraph(graph: NSManagedObject){
    let vc = storyboard?.instantiateViewController(withIdentifier: "GraphArchiveSelected") as? GraphArchiveSelectedVC
    vc?.selectedGraph = graph
    navigationController?.pushViewController(vc!, animated: true)
}

因此,我正在实例化用于显示数据的下一个VC,并传递所选的DataSet(使用变量图和selectedGraph)。这是当我使用此函数时遇到错误时:

CoreData: error: Failed to call designated initializer on NSManagedObject class 'NSManagedObject' 

它还突出显示了该功能的这一行:

vc?.selectedGraph = graph [Thread 1: EXC_BAD_ACCESS (code=1, address=0x38]

我不确定为什么在64位设备上可以使用它,这可能是

Here is how the DataSets look loaded in the first VC

Here is what the DataSet Entity looks like

Here is what the DataPoint Entity looks like

1 个答案:

答案 0 :(得分:0)

问题在于selectedGraph的声明方式如下:

var selectedGraph = GraphDataSet()

应该是这样的

var selectedGraph: NSManagedObject!