Расширения могут быть определены для структур, классов.Перечисления могут быть расширены также с большей функциональностью, но не с новыми случаями.
Идентификатор NSCalendar - это структура, определяемая как:
public struct Identifier : Hashable, Equatable, RawRepresentable {
public init(_ rawValue: String)
public init(rawValue: String)
}
Принимая во внимание, что Идентификатор календаря является перечислением, и именно поэтомуон не может быть расширен:
public enum Identifier {
case gregorian
case buddhist
case chinese
case coptic
case ethiopicAmeteMihret
case ethiopicAmeteAlem
case hebrew
case iso8601
case indian
case islamic
case islamicCivil
case japanese
case persian
case republicOfChina
@available(OSX 10.10, iOS 8.0, *)
case islamicTabular
@available(OSX 10.10, iOS 8.0, *)
case islamicUmmAlQura
}
И невозможно, чтобы определенное перечисление расширялось и наследовало случаи другого перечисления.