Комментарии 10
И внутрь фрэймворка лезть нам тоже очень не хочется, потому что время от времени выходят его обновления и лишаться их — жалко.
а если класс не наследник NSObject?
ну или хотя б метод не dynamic?
тогда только лезть? часто ли пишете такие условия сами?
А если не dynamic и не наследник NSObject, то выбора нет и method swizzling не взлетит, сколько ни мучайся. И знать это — не лишне.
Получается в Swift можно использовать swizzling, только если для этого разработчики сами приложат усилия? Практически бесполезно получается ((
Кстати, а что по поводу SWRoute? Запустить у себя не получилось, видимо не совместимо с последней версией, но люди поставили звезды, возможно у них получилось, не пробовали разобраться с новой версией языка?
Кстати, а что по поводу SWRoute? Запустить у себя не получилось, видимо не совместимо с последней версией, но люди поставили звезды, возможно у них получилось, не пробовали разобраться с новой версией языка?
Я как-то больше с iOS работаю, а эта штука на нем не запустится, если верить ее документации
Автор пишет, что можно выбрать другую библиотеку для замены основы под iOS.
Да и если это работает, пусть и не под iOS, тогда вопрос, может все таки можно без NSObject и dynamic? Почему бы не раскопать эту тему, вместо того чтобы просто написать «вот так можно, это логично и просто и все тут», это будет намного интереснее и полезнее. О этой либе упоминается как раз в приведенном вами источнике
Да и если это работает, пусть и не под iOS, тогда вопрос, может все таки можно без NSObject и dynamic? Почему бы не раскопать эту тему, вместо того чтобы просто написать «вот так можно, это логично и просто и все тут», это будет намного интереснее и полезнее. О этой либе упоминается как раз в приведенном вами источнике
Подождите, тут предлагается адаптированная под русского пользователя копия статьи с NSHipster (структура повествования + код, за исключением названий класса и пары методов), плюс в конце дополнение, что чтобы это работало, то надо чтобы класс и метод был виден в obj-Runtime.
По мне это перевод + чуть-чуть автора.
По мне это перевод + чуть-чуть автора.
Спасибо за обозначены нюанс, помогло!
UPD Swift 5.1
Для зашедших через поиск с 2020 года рекомендую ещё посмотреть на @_dynamicReplacement
forums.swift.org/t/dynamic-method-replacement/16619
Очень инуитивно работает
Для зашедших через поиск с 2020 года рекомендую ещё посмотреть на @_dynamicReplacement
forums.swift.org/t/dynamic-method-replacement/16619
Очень инуитивно работает
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Method Swizzling и Swift: но есть нюанс