Как создать подкласс расширения, заблокированного внутри модуля?

У меня есть библиотека Cocoapod, которая предлагает свою функциональность через extension следующим образом:

extension ExposedLibraryClass
{
    class func setup () { ... }
}

У меня есть шаблонный код, который входит в setup() для каждого приложения, которое я делаю, но каждое приложение также нуждается в добавлении некоторых сделанных на заказ битов после этого. Проблема в том, что это расширение, и я не могу подклассифицировать его, а просто вклинивание специального кода в конце функции setup() — очень неприятное решение.

Что бы вы предложили мне сделать, пожалуйста? Спасибо.


person Joseph Beuys' Mum    schedule 23.02.2016    source источник
comment
Вы можете написать столько расширений для типа, сколько захотите. Но вы не можете переопределить методы в расширении.   -  person Martin R    schedule 23.02.2016
comment
расширения не для переопределения методов исходного класса — как следует из названия, они являются только расширениями.   -  person holex    schedule 23.02.2016
comment
@MartinR отредактировал вопрос, чтобы сделать его уникальным.   -  person Joseph Beuys' Mum    schedule 23.02.2016


Ответы (1)


Нет, расширения не могут переопределять методы, определенные в другом расширении. Они предназначены для добавления новых функций к существующим объектам.

Единственный способ сделать то, что вы хотите, - это создать подкласс SomeClass и переопределить нужные вам методы.

Взгляните на документацию по расширению для список того, что они могут сделать.

person Craig Siemens    schedule 23.02.2016