Короче, вы не можете.
Вы могли бы в Objective-C 1.0 ABI / API через:
OBJC_EXPORT void class_removeMethods(Class, struct objc_method_list *) OBJC2_UNAVAILABLE;
Но эта функция была удалена в Objective-C 2.0, потому что удаление методов почти никогда не является правильным ответом. Конечно, не достаточно часто, чтобы оправдать накладные расходы, связанные с поддержкой указанной функции.
Также из ObjC2.0 ABI была удалена возможность прямого доступа к структурам класса / метода. Теперь они непрозрачны, чтобы их можно было изменить в будущем, не нарушая бинарную совместимость.
Однако вы можете использовать собственный прокси, который меняет набор методов, на которые он реагирует. Смотрите документацию по классу NSProxy; http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSProxy_Class/Reference/Reference.html
Конечно, этот вопрос напрашивается на вопрос «Что вы пытаетесь сделать?». Такое на лету метапрограммирование нетипично. После создания экземпляра класса обычно нежелательно изменять набор методов, на которые он отвечает, исходя из предположения, что предыдущие экземпляры могут все еще зависеть от указанных методов.