将NSManagedObject从一个视图控制器传递到另一个视图控制器

时间:2015-09-07 10:02:29

标签: ios swift uitableview

我有一个uitableview,里面装满了核心数据对象。我需要将选定行的对象传递给详细视图控制器。以下是我的代码: 提醒屏幕:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "ShowAlertDetails" {
        if let destination = segue.destinationViewController as? AlertDetailsViewController {
            if let blogIndex = tblvwAlerts!.indexPathForSelectedRow()?.row {
                let objAlert:Alert = arrReferrals[blogIndex] as! Alert
                destination.objAlert = objAlert
            }
        }
    }
}

详情视图控制器:

class AlertDetailsViewController: UIViewController {
@IBOutlet weak var tblvwHitDetail: UITableView?
var objAlert:Alert = Alert()

当我尝试将对象从第一页复制到详细信息页面时,我收到以下错误:

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

1 个答案:

答案 0 :(得分:0)

错误是由var objAlert中调用Alert()方法引起的:Alert = Alert()。您可以将Alert设置为隐式解包值var objAlert:Alert!。它最初为零,然后它将保存从前一个控制器传递的被管理对象的引用。