Относительно этого технического Q & A от Apple: http://developer.apple.com/library/mac/#qa/qa1490/_index.html
Я думаю, что компилятор мог отмечать вызовы методам, определенным в категориях во время компиляции (он знает, что они были определены в категории, а не в основном классе, потому что прототип был в разделе @interface Class (Category)
), чтобы он мог построить таблицу в объектных файлах "методы внешней категории". Затем компоновщик, выполнив обычную привязку, должен иметь возможность конкатенации/слияния и обработки таблиц "внешних категорий" со всех объектов и поиска соответствующих символов в соответствующих категориях классов из всех связанных фреймворков/библиотек/объектов, затем могут вытащить те, которые еще не были "в" цели.
Должно быть, что-то мне не хватает, но что это? Почему это невозможно?