我有一个名为“Expense”的实体,它与另一个名为“Trip”的实体相关联。 如何访问与每笔费用相关联的旅行?
我正在使用NSManagedObjects,举个例子,这是我的一个方法:
func fillCellWithExpense(cell: DayExpensesViewCell, expense: NSManagedObject) -> DayExpensesViewCell {
let amount = expense.value(forKey: AMOUNT) as! Double
cell.amountLabel?.text = String(format:"%.2f", amount)
let category = expense.value(forKey: CATEGORY) as! String
cell.categoryLabel?.text = category
switch category {
case "Transportation":
cell.line.backgroundColor = Colors.C1
case "Shopping":
cell.line.backgroundColor = Colors.C2
case "Food":
cell.line.backgroundColor = Colors.C3
case "Accomodation":
cell.line.backgroundColor = Colors.C4
case "Fun":
cell.line.backgroundColor = Colors.C5
case "Coffee":
cell.line.backgroundColor = Colors.C6
case "Groceries":
cell.line.backgroundColor = Colors.C7
default:
cell.line.backgroundColor = Colors.C8
}
return cell
}
如果我想访问费用之旅的名称,我可以简单地将NSManagedObject转换为费用,然后访问它的属性吗?
let e = expense as! Expense
e.trip.value(forKey: "name")
答案 0 :(得分:0)
在模型编辑器中,您需要添加一个关系及其与两个模型的反转(看起来您至少部分完成)。
如果我正确猜测你的模型,请在Expense to Trip(称之为trip)上设置一对一的关系。在Trip to Expense上设置一个多对多的关系(可能称之为费用),并将其设置为与您在Expense上的关系(称为trip)的反向。
然后,如果您的目标是Swift,则可以在trip
上访问Expense
;例如...
var expense = Expense()
expense.trip // ...