I Нужно переопределить метод с использованием категории. Я также знаю об опасностях, связанных с этим (это частный класс внутри другого класса, и никто никогда не напишет еще один метод переопределения категории, поэтому не гарантируется неопределенное поведение). Я видел много подобного questions, но они все адреса подавление компилятора предупреждения использовать что-то вроде этого:Как вы подавляете предупреждение компоновщика при переопределении метода экземпляра класса в категории
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
// do your override
#pragma clang diagnostic pop
Однако это по-прежнему оставляет компоновщика предупреждения. Можно ли избавиться от него для моего конкретного переопределения, которое я считаю безопасным, в Xcode 4.6?
Описание проблемы sample GitHub project.
Если вы воспользуетесь, зачем вам это нужно, мы могли бы предложить вам альтернативные решения. ваш примерный код не показывает нам причину, поскольку в этом примере это не очевидно, почему вы не используете подклассы. – vikingosegundo
@vikingosegundo Я хочу заменить реализацию метода, сохраняя при этом доступ к его суперклассу (и нахожу это более элегантным подходом, чем метод swizzling). См. Этот вопрос для получения дополнительной информации: http://stackoverflow.com/questions/15291390/in-objective-c-how-do-you-entirely-replace-a-method-of-a-parent-class-while-pre В этом вопросе я попросил альтернативные решения проблемы. Здесь я просто спрашиваю, как подавить фактические предупреждения компоновщика для будущих ссылок. – lms
Я бы никогда не подумал о том, чтобы подавить предупреждение элегантно. Может быть, это менее уродливо, чем метод swizzling ... – vikingosegundo