计算属性(Swift / Core数据)

时间:2015-02-23 17:27:52

标签: swift core-data

我正在尝试使用Core Data并使用计算属性。假设我有三个由Core Data管理的属性,名字,姓氏和公司,所有字符串。现在我想创建一个看起来像“firstname lastname - company”的计算属性,例如显示在NSPopUpButton中。 由于我不能为NSManaged属性使用自定义getter,我试图创建一个正常的计算变量,但是如果我更改任何Core Data属性,它就不会被重新计算。 我在尝试一些可以做得更容易的事情吗?

2 个答案:

答案 0 :(得分:0)

使用Swift,您可以通过覆盖awakeFromFetch()函数来计算从Core Data获取值时的值。只要从持久性存储中检索托管对象,就会执行此函数。

您需要在托管对象中覆盖此功能:

override public func awakeFromFetch() {
    let newValue = value1 + value2

在上面的示例中,您的" newValue"将使用托管对象的现有value1和value2参数计算

答案 1 :(得分:-1)

我在Apple Dev论坛上得到了答案。

刚刚实施:

class func keyPathsForValuesAffectingComputed() -> Set<String> {
    return ["firstname", "lastname", "company"]
}