[英]Swift CoreData: error: Failed to call designated initializer on NSManagedObject class '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.