需要澄清iOS中的代表

时间:2015-05-01 10:33:16

标签: ios objective-c delegates

根据Apple文档:

  

委托是一个简单而强大的模式,其中一个对象在一个   程序代表另一个对象或与另一个对象协调。   委托对象保持对另一个对象的引用 -   委托 - 并在适当的时间向其发送消息。

请澄清。对于ignore:PasswordUIAlertView是委托对象吗?

1 个答案:

答案 0 :(得分:0)

对于UIAlertView,是的,UIAlertView是委托对象,其delegate属性指向的是其委托。

对于Apple内置框架中的所有内容,委派对象通常都有一个名为delegate的属性。委托对象是具有此属性的对象(它保存对其委托的引用)。委托是delegate属性指向的对象。

除此之外,Apple的一些课程,例如UITableView(还有很多其他课程),还会有datasource属性。 UITableView与其数据源保持与其委托相同的关系。

从技术上讲,在这两种情况下,UITableView都是委托对象,delegatedatasource(可以指向不同的对象)都指向"代表"对象。

实际上,我们永远不会将UITableView的{​​{1}}对象称为其代理" - 我们将其称为数据源。这可以防止在哪个对象是数据源和哪个对象是委托之间产生混淆。

另外,请记住,仅仅因为某事物是委托对象并不意味着它也不能成为其他代理人。