为什么@NSManaged属性可以存储在扩展名中?

问题描述 投票:0回答:1

当扩展名不能包含存储的属性时,@ NSManaged属性如何在扩展名中?为什么它们与存储的属性不同?

核心数据文件的一种流行格式是核心数据类,然后是包含核心数据属性的扩展名。

//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
}
swift core-data nsmanagedobject
1个回答
1
投票

从技术上讲@NSManaged属性是计算的属性。

核心数据综合了getter和setter。

© www.soinside.com 2019 - 2024. All rights reserved.