1. 有人知道我在哪里可以找到一个很好的解释/教程,说明应用程序委托在objective-C中是如何工作的吗?
  2. 我所拥有的两本书对delegates个方面的论述不够详尽,也没有很好地解释它们,让我真正理解它们的力量和功能.

推荐答案

如果有疑问,请查看docs

基本上,委托是一种允许对象相互交互的方式,而不会在它们之间产生强烈的相互依赖性,因为这会降低应用程序的设计灵活性.对象之间没有相互控制的关系,它们可以有一个委托,向该委托发送(或委托)消息,委托会做任何事情,以便响应和执行该消息,然后通常会将某些内容返回给另一个对象.

委派也是子类化的更好 Select .不必创建自己的自定义类来稍微改变其他对象的行为方式,或向它们传递数据,委托允许对象向其委托发送消息来为其执行工作,而无需创建子类来对其他对象进行微小更改.

当然,委托的主要缺点是,可用的委托方法取决于苹果工程师认为有用的东西,以及他们希望人们需要的常见实现,这对你能实现的东西施加了限制.不过,正如奎因·泰勒所指出的,这是Cocoa框架特有的,因此并不适用于所有情况.

如果委托是子类化的一种 Select ,那么就接受它,因为它是管理代码和对象之间交互的一种更干净的方法.

Objective-c相关问答推荐

反编译ARM64和理解分支目标边界

如何从 C 方法调用 Objective-C 方法?

CoreData:错误:无法在 NSManagedObject 类上调用指定的初始化程序

如何打印 NSMutableURLRequest?

碰撞技术如何运作?

Objective C 代码是否有 github markdown 语言标识符?

如何获取 NSArray 的最后一个对象

iOS中CALayer的UIImage

iOS - 应用程序关闭时的核心位置和地理围栏

将子视图添加到 UIButton

Crashlytics iOS - 记录捕获的异常

从 UIScrollView 中删除所有子视图?

当服务器上的图像文件更改时,我的应用程序中的 SDWebImage 缓存图像会发生什么情况?

我可以设置 `UILabel` 的 `attributedText` 属性吗

如何用 Java 开发 iPhone 应用程序?

如何推送两个视图控制器但只为第二个设置动画过渡?

单例释放方法产生警告?

点击手势识别器 - 哪个对象被点击了?

如何在 Xcode 7 中启用_BITCODE?

更改导航栏的字体