簡體   English   中英

Segue錯誤-無法在nsmanagedobject類上調用指定的初始化程序

[英]Segue error - failed to call designated initializer on nsmanagedobject class

在Tableview控制器1中,我在viewDidLoad中初始化了一個NSManagedObjects數組(名為“ Date”的實體)。 var datesArray = [Date]() 我使用此數組填充表數據。

當用戶選擇一個單元格時,我想通過索引路徑將該選定的Date對象傳遞給視圖控制器#2(詳細信息視圖)。 這是我在prepareForSegue用於tableview控制器#1的內容:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let selectedIndexPath = tableView.indexPathForSelectedRow()
    if segue.identifier == "ShowDateDetails" {
        let dateDetailsVC = segue.destinationViewController as! DateDetailsVC
        dateDetailsVC.date = datesArray[selectedIndexPath!.row] as Date
    }
}

在視圖控制器2中,我有一個簡單的var date = Date()屬性。

當我在表格視圖中選擇一行時,它在dateDetailsVC.date = datesArray[selectedIndexPath!.row] as Date崩潰,並顯示錯誤:

CoreData:錯誤:無法在NSManagedObject類'DateAid.Date'上調用指定的初始化程序

任何人都可以引導我找到解決方案,或以半外行的方式解釋為什么會發生這種情況的原因嗎? 我想避免不必在視圖控制器2中執行獲取請求,除非那不可能。 對於上下文,我的核心數據技能目前為1.5 / 5。

看這個答案

https://stackoverflow.com/a/25505878/2382237

也許您應該像這樣聲明日期:

var date: Date?

和一些重構:

 dateDetailsVC.date = datesArray[selectedIndexPath!.row] as? Date

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM