无法指定NSManagedObject类型的值来键入' Journal' (实体)

时间:2016-10-27 17:07:49

标签: ios core-data

我正在尝试从NSManagedObjects var journals = [NSManagedObject]()数组中获取单个实体,并将其显示在详细信息页面上。我目前通过在didSelectRow操作中准备segue时在目标控制器上声明一个变量来实现这一点:

let indexPath = tableView.indexPath(for: (sender as! UITableViewCell))
controller.journalToDisplay = journals[indexPath!.row]

在显示控制器中,我还没有多少设置,只是这种说法:

var journalToDisplay: Journal?

抛出错误:

Cannot assign value of type 'NSManagedObject' to type 'Journal?'

在这种情况下,Isn只是一个NSManagedObject吗?我尝试过使用类似的东西:

var journalToDisplay: NSManagedObject as! Journal

但这似乎并不是正确的方法。

2 个答案:

答案 0 :(得分:1)

数组不会隐式知道它们中包含的对象的类型,因此编译器无法在不显式转换从索引数组的对象的情况下分配自定义类。

将日记[indexPath!.row]投射到Journal对象,以便编译器知道如此对待它。

答案 1 :(得分:0)

根据@JakeT修正。关于明确地将.plist转发给Journal对象的指示,

journals[indexPath!.row]