我的应用程序具有一项功能,其中可以存储许多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
答案 0 :(得分:0)
问题在于selectedGraph的声明方式如下:
var selectedGraph = GraphDataSet()
应该是这样的
var selectedGraph: NSManagedObject!