【发布时间】:2018-11-23 13:57:59
【问题描述】:
我有两个Core Data entities,它们用两个部分填充一个UITableView,每个部分一个实体。当用户点击表格行时,他们会被定向到发送该行数据的另一个视图。目前是这样实现的:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "editValue") {
let secondViewController = segue.destination as! EditValuesViewController
if send_array_inc.isEmpty {
secondViewController.send_array_exp = send_array_exp
} else if send_array_exp.isEmpty {
secondViewController.send_array_inc = send_array_inc
}
}
}
问题:
由于有两个实体,因此发送到下一个视图的数据有两种可能的类型(Income 和Expenses)。如何在具有一个变量的下一个视图中使用该数据?我在ViewDidLoad 中执行以下操作,但send_array 的范围仍在该函数内。我怎样才能让send_array 在外面可用?
if send_array_inc.isEmpty {
var send_array = [Expenses]()
send_array = send_array_exp
} else if send_array_exp.isEmpty {
var send_array = [Income]()
send_array = send_array_inc
}
理想情况下,我希望这样做不为每个实体创建单独的视图结果,但如果另一种解决方案更好和更现实,我愿意重构。谢谢
【问题讨论】:
-
考虑只使用一个实体并添加一个类型列来区分费用和收入。另一个要考虑的选择是在 Core Data 中使用继承,并在父实体的视图控制器中定义要编辑的公共字段。
-
我真的很喜欢迈克的第一个想法,谢谢!
标签: swift uitableview core-data scope