【发布时间】:2015-06-24 06:43:55
【问题描述】:
在 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。
【问题讨论】:
-
你如何填充你的“datesArray”?
-
通过对传播的托管对象上下文的获取请求。由于我在视图控制器 #1 'datesArray' 中有所有日期,我希望不必在视图控制器 #2 中再次获取它们。
-
好的,你是如何在 dateDetailsVC 中声明日期的?我有一个想法..
-
var date = Date() 作为 dateDetailsVC 中的变量属性
标签: ios xcode swift uitableview core-data