计算属性(Swift/Core数据)



我正在尝试使用核心数据并利用计算属性。假设我有三个由核心数据管理的属性,名字、姓氏和公司,都是字符串。现在我想创建一个类似"firstname lastname-company"的计算属性,例如显示在NSPopUpButton中。由于我不能为NSManaged属性使用自定义getter,我试图只创建一个正常的计算变量,它可以工作,但如果我更改任何核心数据属性,它就不会被重新计算。我是不是在尝试一些更容易做的事情?

使用Swift,您可以通过重写wakeFromFetch()函数来计算从核心数据中获取值时的值。每当您从持久存储中检索托管对象时,都会执行此函数。

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

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

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

我在苹果开发者论坛上得到了答案。

刚刚实施:

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

最新更新