Core data Swift中的NSManagedObject子类不能使用自定义访问器?

Core data Swift中的NSManagedObject子类不能使用自定义访问器?,core-data,subclass,nsmanagedobject,accessor,Core Data,Subclass,Nsmanagedobject,Accessor,我正在NSManagedObject的核心数据生成子类中使用Swift。有一个临时可选属性标题。(可选属性不是Swift的可选属性,而是核心数据的可选属性。) 所以我需要一个定制的getter。我的代码是 class ShoppingList: NSManagedObject { @NSManaged var title: String func title() -> String { return "something" } } Object

我正在NSManagedObject的核心数据生成子类中使用Swift。有一个临时可选属性标题。(可选属性不是Swift的可选属性,而是核心数据的可选属性。) 所以我需要一个定制的getter。我的代码是

class ShoppingList: NSManagedObject {

    @NSManaged var title: String

    func title() -> String {
        return "something"
    }
}
Objective-C版本的getter运行良好。但是,Xcode告诉我“func title()是无效的重新声明”。我试图使用computed属性,但得到“@托管属性不能使用computed属性”


所以我的问题是,在NSManagedObject子类化的Swift版本中,是否有另一种获取自定义访问器(getter)的方法?

您可以为计算属性使用不同的名称,并让它返回title变量

@NSManaged var title: String

var myTitle : String {
   return self.title
}
那对你有用吗?
苹果在很多地方都是这样做的,它在前面用下划线命名实际的var,而计算的属性用相同的名称命名,但没有下划线

我需要的是与Objective-C版本的getter in Core Data在Swift中的瞬态属性等价。您的方法是不在核心数据模型文件中定义瞬态属性,而是直接在源文件中使用它。我认为应该行得通。但这不是我想要的,我不太确定有什么区别。你能详细说明一下吗?就像我的例子一样,标题是核心数据中的暂时属性。当我创建一个新的ShoppingList实例时,它是nil。因此,我需要一个getter在访问标题时生成标题。然而,你们的方法是让我从标题中生成一些东西,现在是零。所以这是不可能的。如果我使用你的方法,我必须首先删除核心数据模型中标题的定义。然后在源文件中创建它。这会奏效的。但是我的模型没有完成,因为模型文件中没有定义瞬态属性。