나는 소켓 프로그래밍과 함께 일하고있다. 단지 내가 다운로드 한 코드와 관련된 의심을 분명히하고 싶었다. - mobileorchard.com - Chatty. 나는 위의 호출의 구현을 위해, Room.m 파일에서봤을 때 R & D 동안, 나는 ChatRoomViewController.m 파일왜 doesNotRecognizeSelector : 메서드를 호출할까요?
[chatRoom broadcastChatMessage:input.text fromUser:[AppConfig getInstance].name];
에서 함수 호출을 보았다; 이
- (void)broadcastChatMessage:(NSString*)message fromUser:(NSString*)name
{
// Crude way to emulate an "abstract" class
[self doesNotRecognizeSelector:_cmd];
}
난 "doesNotRecognizeSelector"에 대한 검색 좀이었다 Apple에있어서, 그 오류 처리 ". 런타임 시스템 개체가 전방에 응답하거나 수없는 aSelector 메시지를 수신 할 때마다,이 메소드를 호출한다"라는 내 질문은 왜 개발자가 broadcastChatMessage : fromUser : 함수를 호출하고 거기에 아무도 사용하지 않고 어떤 메서드의 "선택자를 찾을 수 없음"예외를 처리합니까?
Stackovrflow에 따르면,이 Question에 따라 추상 클래스를 만드는 데 사용되며, "불완전한 구현"경고가 표시되지 않습니다.
나는 그 방법이 왜 Chatty Code에 사용되는지 알지 못합니다. 그 방법이 사용되는 이유를 이해하는데 도움이됩니다.
응용 프로그램의 원래 개발자가 C++ 추상 기본 클래스의 기능을 에뮬레이트하려고 시도한 것처럼 보입니다.이 경우이 인스턴스는 유효하지 않습니다. 이것은 단순히 메소드가 아무것도하지 않거나 자리 표시 자 값 (보통 0 또는 NULL)을 반환하는보다 극단적 인 형식입니다. – CodaFi