Кажется, что текущий оптимизатор Swift подавляет генерацию переопределенного метода getter, когда его определение совпадает с его суперклассом.Что за умный оптимизатор!?
Этот вид хака подавил бы слишком сильную оптимизацию.
class ClassB: ClassA {
//...
static private var secureCoding = true
override public class var supportsSecureCoding: Bool { return secureCoding }
}
static private let
не имеет такого же эффекта.Поэтому, когда оптимизатор Swift более умный, приведенный выше код может не работать.Лучше отправьте отчет об ошибке в ближайшее время.
Похоже, оптимизатор Swift уже достаточно умен и обходной путь, описанный выше, может не сработать.(См. Комментарий Мартина Р.) *
Возможно, вам придется удалить private
.
class ClassB: ClassA {
//...
static var secureCoding = true
override public class var supportsSecureCoding: Bool { return secureCoding }
}