我注意到在iPhone SDK中定义的几个协议中标记为可选的方法,例如UIActionSheetDelegate协议.
如何定义自己的协议,并将一些方法设置为可选?
我正在使用套接字编程.我只是想清除与我从 - mobileorchard.com - Chatty下载的代码相关的疑问.在研发时,我在ChatRoomViewController.m文件中看到了一个函数调用
[chatRoom broadcastChatMessage:input.text fromUser:[AppConfig getInstance].name];
Run Code Online (Sandbox Code Playgroud)
当我在Room.m 文件中看到,用于执行上面的调用; 它是
- (void)broadcastChatMessage:(NSString*)message fromUser:(NSString*)name
{
// Crude way to emulate an "abstract" class
[self doesNotRecognizeSelector:_cmd];
}
Run Code Online (Sandbox Code Playgroud)
我用google搜索"doesNotRecognizeSelector:",根据Apple的错误处理,声明"只要对象收到一个无法响应或转发的aSelector消息,运行时系统就会调用此方法." 我的问题是为什么开发人员调用broadcastChatMessage:fromUser: function如果它没有在那里使用并处理哪个方法的"未找到选择器"异常?
根据Stackovrflow,它用于创建抽象类,根据这个问题,它避免了"不完整实现"的警告.
我仍然没有理解为什么在Chatty Code中使用该方法,请帮助我理解使用该方法的原因.