Я читаю исходный код проекта с открытым исходным кодом, и я обнаружил следующее определение категории в файле реализации:
@interface QCView (Private)
- (void)_pause;
- (void)setClearsBackground:(BOOL)flag;
@end
Сначала я подумал, что setClearsBackground
метод добавляет к определению класса QCView
. Но когда я ищу в этом файле реализации, я не вижу реализации метода setClearsBackground
(хотя это сообщение отправляется экземпляру QCView
в нескольких местах файла).
Зачем кому-то объявлять метод в классе инфраструктуры, подобном QCView
, но тогда нигде не реализовывать этот метод? Я могу только предположить, что это способ обойти компилятор и вызвать метод, который не объявлен в файле QCView.h
. Но это кажется маловероятным, потому что как разработчик узнает, что реализация этого метода вообще существует?