Быстрое ключевое слово open и переопределенный метод / свойства в расширении?

С введениемopen ключевое слово в Swift 3.0 (Что такое ключевое слово open в Swift?).

Примечание: ограничено расширениями наNSObject производные классы или@objc атрибутивный метод / свойства.

Код, который объявлен и использованpublic (class) методы / свойства в расширениичерез сломались модули / рамки, какpublic больше не означает «переопределяемый» вне определяющего модуля.

Пример:

public extension UIManagedDocument {

    public class func primaryDocumentName() -> String {
        return "Document"
    }

    public class func primaryStoreURL() -> URL {
        let documentsURL = FileManager.default.userDocumentsURL
        return URL(fileURLWithPath: self.primaryDocumentName(), isDirectory: false, relativeTo: documentsURL)
    }

    public class func primaryModelName() -> String? {
        return "Model"
    }

}
Оригинальное предложение (SE-0117) ориентирован на подклассы и не упоминает расширения.В настоящее время расширения не поддерживаютopen ключевое слово (вы не можете написатьopen extension NSObject так же какopen func Method())

Вопрос: Есть ли обходной путь, чтобы иметь возможность переопределить расширение при условии, методы / свойствачерез модули / рамки?

Ответы на вопрос(2)

Ваш ответ на вопрос