Почему НЕ является ошибкой компилятора указать протокол, но не реализовать требуемые методы?

В объекте-c я могу сделать что-то вроде

@interface MyViewController : UIViewController <UITextInputDelegate>

для создания спецификация для класса MyViewController, реализующего протокол UITextInputDelegate. Теперь у этого протокола есть несколько требуемых методов, поэтому я думаю, что компилятор не позволит компилировать код вообще, если эти методы фактически не имеют реализации в файле .m. Тем не менее, это компилируется. Компилятор выдает предупреждения , поэтому очевидно, что он обнаруживает, что я не реализовал требуемые методы, но мне интересно, почему имеет смысл разрешить компиляцию вообще со стороны разработчика языка .

7
задан Tneuktippa 21 June 2011 в 21:15
поделиться