为什么@NSManaged 属性可以存储在扩展中?
Why can @NSManaged properties be stored in extensions?
当扩展不能包含存储的属性时,@NSManaged 属性如何在扩展中?为什么它们与存储属性不同?
核心数据文件的一种流行格式是核心数据 class,然后是包含核心数据属性的扩展名。
//User+CoreDataClass
@objc(User)
public class User: NSManagedObject {
var fullName: String {
return "\(firstName) \(lastName)"
}
}
//User+CoreDataProperties
extension User {
// Why can these @NSManaged properties live in an extension?
@NSManaged public var id: Int64
@NSManaged public var firstName: String
@NSManaged public var lastName: String
var storedProp: String // Error: Extensions must not contain stored properties
}
技术上 @NSManaged
属性是计算属性。
核心数据综合 getter 和 setter。
当扩展不能包含存储的属性时,@NSManaged 属性如何在扩展中?为什么它们与存储属性不同?
核心数据文件的一种流行格式是核心数据 class,然后是包含核心数据属性的扩展名。
//User+CoreDataClass
@objc(User)
public class User: NSManagedObject {
var fullName: String {
return "\(firstName) \(lastName)"
}
}
//User+CoreDataProperties
extension User {
// Why can these @NSManaged properties live in an extension?
@NSManaged public var id: Int64
@NSManaged public var firstName: String
@NSManaged public var lastName: String
var storedProp: String // Error: Extensions must not contain stored properties
}
技术上 @NSManaged
属性是计算属性。
核心数据综合 getter 和 setter。