问题描述
您好,我正在寻找有关代表的有用资源.我了解代表坐在后台并在某些事情发生时接收消息 - 例如.选择表格单元格,或检索来自网络连接的数据.
Hey, I'm looking for useful resources about Delegates. I understand that the delegate sits in the background and receives messages when certain things happen - e.g. a table cell is selected, or data from a connection over the web is retrieved.
我特别想知道的是如何将委托与多个对象一起使用.据我所知,为对象(例如表格单元格)指定相同的委托会导致同时为两个单元格调用相同的事件.有什么相当于为特定对象实例化委托的方法吗?
What I'd like to know in particular is how to use delegates with multiple objects. As far as I know, specifying the same delegate for an object (e.g. table cell) would cause the same events to be called for both the cells at the same time. Is there anything equivalent to instantiating a delegate for a particular object?
提前致谢!
推荐答案
在 Cocoa 中,对象几乎总是在调用委托方法时标识自己.例如,UITableView 在调用时将自己作为委托消息的第一个参数传递:
In Cocoa, objects almost always identify themselves when calling a delegate method. For example, UITableView passes itself as the first parameter of the delegate message when calling it:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
如果您希望同一个委托处理多个 UITableView,那么您只需要对传递给方法的 tableView 对象设置一些条件:
If you wanted the same delegate to handle multiple UITableViews, then you just need a some conditional on the tableView object passed to the method:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == self.myFirstTableView) {
// do stuff
} else if (tableView == self.mySecondtableView) {
// do other stuff
}
}
}
如果您不想直接比较对象指针,您可以随时使用 tag 属性来唯一标识您的视图.
If you don't want to compare the object pointers directly, you can always use the tag property to uniquely identify your views.
这篇关于代表们,我无法理解他们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)