Каковы опасности использования метода Swizzling в Objective-C?

Я слышал, что люди заявляют, что использование метода swizzling - опасная практика. Даже название swizzling предполагает, что это немного обман.

Метод Swizzling модифицирует отображение так, что вызывающий селектор A фактически вызывает реализацию B. Одно из его применений - расширить поведение классов с закрытым исходным кодом.

Можем ли мы формализовать риски так, чтобы любой, кто решает использовать swizzling, мог принять осознанное решение, стоит ли оно того для того, что они пытаются сделать.

Например,

  • Коллизии имен : Если позже класс расширит свою функциональность, включив добавленное вами имя метода, это вызовет множество проблем. Уменьшите риск, разумно назвав swizzled-методы.

230
задан Cœur 26 June 2019 в 02:22
поделиться