Как утверждает @Dave DeLong, поведение не определено.Один из методов «победит», и просто невозможно узнать, какой именно.Если какой-либо другой код зависит от метода потери, вы обнаружите, что отлаживаете некоторые потенциально странные ошибки.Лучше всего избегать ситуации все вместе.Это особая проблема при реализации «очевидных» вспомогательных методов.Если эти методы будут добавлены в будущей версии платформы, ваша категория либо переопределит новый метод в классе (если он находится в теле основного класса), либо может переопределить метод, если он добавлен в категорию.Eek.
Многие платформы Какао, которые предоставляют категории для существующих (например, Какао) классов, следуют шаблону, посредством которого они добавляют свой префикс класса к методу, чтобы минимизировать вероятность конфликта имен.Так, например, вы бы создали такие категории, как:
@interface NSObject (MyCategory)
- (void)myprefix_categoryMethod;
@end