需要澄清 iOS 中的代表
Need clarification on delegates in iOS
根据 Apple 文档:
Delegation is a simple and powerful pattern in which one object in a
program acts on behalf of, or in coordination with, another object.
The delegating object keeps a reference to the other object—the
delegate—and at the appropriate time sends a message to it.
请说明。在UIAlertView
的情况下,UIAlertView
是委托对象吗?
在 UIAlertView
的情况下,是的,UIAlertView
是一个委托对象,它的 delegate
属性 指向的是它的委托。
对于 Apple 内置框架中的所有内容,委托对象通常会有一个名为 delegate
的 属性。委托对象是具有此 属性 的对象(这是它保存对其委托的引用的地方)。委托是 delegate
属性 指向的对象。
除此之外,Apple 的一些 类,例如 UITableView
(还有很多其他的),还会有一个 datasource
属性。 UITableView
与其数据源的关系与其与其委托的关系相同。
从技术上讲,在这两种情况下,UITableView
都是委托对象,delegate
和 datasource
(可以指向不同的对象)都指向 "delegate" 个对象。
实际上,我们永远不会将 UITableView
的 datasource
对象称为它的 "delegate"——我们称它为数据源。这可以防止混淆哪个对象是数据源,哪个对象是委托。
此外,请记住,仅仅因为某物是委托对象并不意味着它不能同时是其他对象的委托。
根据 Apple 文档:
Delegation is a simple and powerful pattern in which one object in a program acts on behalf of, or in coordination with, another object. The delegating object keeps a reference to the other object—the delegate—and at the appropriate time sends a message to it.
请说明。在UIAlertView
的情况下,UIAlertView
是委托对象吗?
在 UIAlertView
的情况下,是的,UIAlertView
是一个委托对象,它的 delegate
属性 指向的是它的委托。
对于 Apple 内置框架中的所有内容,委托对象通常会有一个名为 delegate
的 属性。委托对象是具有此 属性 的对象(这是它保存对其委托的引用的地方)。委托是 delegate
属性 指向的对象。
除此之外,Apple 的一些 类,例如 UITableView
(还有很多其他的),还会有一个 datasource
属性。 UITableView
与其数据源的关系与其与其委托的关系相同。
从技术上讲,在这两种情况下,UITableView
都是委托对象,delegate
和 datasource
(可以指向不同的对象)都指向 "delegate" 个对象。
实际上,我们永远不会将 UITableView
的 datasource
对象称为它的 "delegate"——我们称它为数据源。这可以防止混淆哪个对象是数据源,哪个对象是委托。
此外,请记住,仅仅因为某物是委托对象并不意味着它不能同时是其他对象的委托。