【发布时间】:2014-10-05 18:02:30
【问题描述】:
如果我尝试在 Swift 中将存储属性添加到 NSManagedObject 中的子类,而不提供默认值(请注意,我将在初始化程序中执行此操作),我会收到以下错误:
Stored property 'foo' requires an initial value or should be @NSManaged
代码如下:
class Thing : NSManagedObject{
var foo : String
var bar : String
init(foo: String, bar : String){
// blah, blah...
}
}
执行此操作的原因是什么?为什么我不能在初始化程序中初始化????
【问题讨论】:
-
你可以使用 transient properties 来达到这个目的。瞬态属性不会保存到持久存储中,但 Xcode 会创建相应的 Swift 属性,Core Data 运行时会创建必要的访问器方法。 – 另请注意,您必须使用指定的初始化程序
init(entity entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext!)创建托管对象。
标签: cocoa core-data swift nsmanagedobject