私はソケットプログラミングで作業しています。私はちょうど - mobileorchard.com - Chattyからダウンロードしたコードに関連する疑いを明確にしたいと思います。 R & Dながら、私は上記の呼び出しを実現するため、Room.mファイルで見たときに、私は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];
}
i「がdoesNotRecognizeSelector:」のためにGoogleで検索したAppleによると、そのエラー処理のために、「ランタイムシステムはオブジェクトが前方に反応したりすることはできませんaSelectorメッセージを受信するたびに、このメソッドを呼び出します」旨私の質問はなぜ開発者がbroadcastChatMessage:fromUser:関数を呼び出すのですか?そのメソッドのどれも使用されておらず、どのメソッドのセレクタが見つかりませんでしたか?
Stackovrflowによると、このQuestionに従って、抽象クラスを作成するために使用され、その "不完全な実装"の警告を避けるために。
私はまだその方法がその中で使われている理由を知りませんChatty Code、その方法が使われている理由を理解するのを助けてください。
アプリケーションの元の開発者がC++抽象基本クラスの機能をエミュレートしようとしていたようですが、そのインスタンスが無効であるようです。これは単にメソッドが何もしない、またはプレースホルダの値(通常は0またはNULL)を返すような極端な形式です。 – CodaFi