Почему свойства @NSManaged могут храниться в расширениях? - PullRequest
0 голосов
/ 10 января 2020

Как свойства @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
}

1 Ответ

2 голосов
/ 10 января 2020

Технически @NSManaged свойства являются вычисленными свойствами.

Базовые данные синтезируют геттер и сеттер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...