Ответ 1
Есть два варианта, с которыми я столкнулся, добавив флаги в "Другие флаги компоновщика" в области настроек сборки Xcode:
1) Добавление -Xlinker -w
будет подавлять все предупреждения компоновщика, независимо от типа (это флаг -w
для ld (1)). Очевидно, что это успокоит это конкретное предупреждение, но все остальные предупреждения ld также.
2) Добавление -Xlinker -no_objc_category_merging
пропустит шаг оптимизации, когда компоновщик объединяет все методы категорий в базовый класс во время связывания, который затем будет выполняться во время выполнения. Вероятно, крошечный бит медленнее при запуске, но он, вероятно, будет быстрее, чем метод swizzling во время выполнения, и поскольку именно на этом этапе ld (1) выдает предупреждение, он также пропустит это.
Похоже, что ld не имеет возможности оперативно подавить любое предупреждение, как это делает компилятор, хотя у него есть специальные флаги для пары из них или групп из них (ни одна из которых не помогает с этим). Ни одно из решений выше, вероятно, не рекомендуется для производственного кода, но в некоторых ситуациях может помочь один или другой.