Использование init и didSet с объектами NSManaged - PullRequest
0 голосов
/ 12 июля 2020

У меня есть следующий класс, объекты хранятся с использованием CoreData

extension CDate{

  @nonobjc public class func fetchRequest() -> NSFetchRequest<CDate> {
      return NSFetchRequest<CDate>(entityName: "CDate")
  }

  @NSManaged public var day: Int
  @NSManaged public var month: Int

}

Мне нужно добавить к нему свойство, это свойство будет обновляться каждый раз при изменении других свойств:

  var date:DateComponent

Это свойство необходимо инициализировать при создании объекта CDate. В обычном классе я бы использовал конструктор init для инициализации объекта и didSet {} в месяц и день, чтобы обновлять свойство date всякий раз, когда обновляются свойства месяца и дня. Нет init и didSet {}?

1 Ответ

1 голос
/ 12 июля 2020

Простым решением для этого было бы создание computed-property внутри CDate, и его значение будет вычисляться во время выполнения и получит обновленное значение в любой момент времени.

extension CDate {
    var date: Date { 
        // compute the date and return here.
    }
}
...