我正在使用套接字編程。我只是想清除與我從 - mobileorchard.com - Chatty下載的代碼有關的疑問。雖然ř& 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];
}
我GOOGLE爲「doesNotRecognizeSelector:」,根據其Apple用於錯誤處理,說明「運行時系統調用只要對象接收aSelector消息時,它不能響應或轉發該方法」我的問題是,爲什麼開發者調用broadcastChatMessage:fromUser:函數,如果它沒有在那裏使用,並且處理哪個方法的「selector not found」異常?
根據Stackovrflow,其用於創建抽象類,根據此Question,其避免「不完整的實現」警告。
我仍然不明白爲什麼該方法用於那個Chatty Code,請幫助我理解爲什麼使用該方法的原因。
看起來好像該應用程序的原始開發人員正試圖模擬C++抽象基類的功能,因爲它的實例無效。它只是一種更極端的形式,使方法無所作爲或返回佔位符值(通常爲0或NULL)。 – CodaFi 2013-04-09 05:43:15