Я работаю с программированием сокетов. Я просто хотел убрать сомнения, связанные с кодом, который я загрузил с - mobileorchard.com - Chatty. В то время как R & D, я увидел вызов функции в ChatRoomViewController.m файлаПочему мы вызываем doesNotRecognizeSelector: метод?
[chatRoom broadcastChatMessage:input.text fromUser:[AppConfig getInstance].name];
, когда я увидел в Room.m файла, для реализации выше вызова; это
- (void)broadcastChatMessage:(NSString*)message fromUser:(NSString*)name
{
// Crude way to emulate an "abstract" class
[self doesNotRecognizeSelector:_cmd];
}
я гугл на «doesNotRecognizeSelector:», согласно Apple его для обработки ошибок, заявив, что «Исполняющая система вызывает этот метод, когда объект получает сообщение aSelector он не может ответить или переадресовать» мой вопрос в том, почему разработчик вызывает функцию broadcastChatMessage: fromUser:, если ее не использовать там и обрабатывать исключение «selector not found» этого метода?
Согласно Stackovrflow, его использовали для создания абстрактного класса, в соответствии с этим Question, чтобы избежать предупреждения «Неполная реализация».
Я до сих пор не понимаю, почему этот метод используется в этом Chatty Code. Пожалуйста, помогите мне понять причину использования этого метода.
Похоже, что первоначальный разработчик приложения пытался эмулировать функции абстрактного базового класса C++, в том случае, если он недействителен. Это просто более экстремальная форма создания методов ничего не делает или возвращает значение заполнителя (обычно 0 или NULL). – CodaFi