有人可以在objective-c中解释代表吗?

Jas*_*son 3 iphone delegates programming-languages objective-c

我一直在使用Objective-C,并且非常了解它的大部分功能.但是,代表们的概念使我望而却步.有人可以简单易懂地解释代表是什么,如何在iPhone SDK中使用它们,以及如何在我自己的代码中最好地利用它们?

谢谢!

Ada*_*gan 5

在Objective-C中使用委托有几个主要原因,这些原因略有不同:

  1. 增强框架类的基本功能.例如,一个UITableView本身很无聊,所以你可以给它一个委托来处理有趣的位(创建表格单元格,为节标题添加文字,你有什么).这样,UITableView永远不会改变,但不同的表视图可以看起来和行为有很大不同.

  2. 与依赖关系层次结构中的父对象进行通信.例如,您可能有一个带有按钮的视图,用户可能会推动该按钮执行影响其他视图的操作.视图必须向其父视图或视图控制器发送消息,以便它可以创建或销毁或修改其他视图.为此,您将父对象(最有可能通过协议)作为弱引用传递到视图中(在Objective-C中,为assign属性).然后,视图可以将协议中声明的任何消息发送到父对象或委托对象.

这种方法不需要涉及视图.例如,NSURLConnection使用此机制将事件传递回其委托,该委托可能是创建它的对象.