iphone - 为什么以及在何处使用 objective-c 中的委托(delegate)

标签 iphone objective-c

我是一个新的 iPhone 程序员

我创建了一些没有委托(delegate)的小 View .... 如果一个程序可以在没有委托(delegate)的情况下运行,那么为什么要使用它们。他们需要什么,我在网上看到一些程序有代表。

我很困惑,请回答。

最佳答案

委托(delegate)是一种模式,它允许某个对象在事情发生时通知另一个对象。许多委托(delegate)方法以“will”或“did”开头,分别在事件发生之前和之后被调用。

假设您有一个 UITableView,并且您想知道用户何时点击单元格以便您可以处理他们的选择。您将委托(delegate)分配给实现委托(delegate)方法 tableView:didSelectRowAtIndexPath: 的 TableView 。

这种方法的好处是 TableView 不必知道或关心这个其他委托(delegate)对象是什么或它是如何工作的。它允许生成事件的对象保持专注和干净,只处理它自己的状态。当它做了一些值得注意的事情时,它会向它的委托(delegate)发送一条消息。委托(delegate)对象根本不需要知道其他对象的内部状态。它只需要知道它做了一些重要的事情。

这非常适合 iPhone SDK 的模型/ View / Controller (MVC) 方法。 View 应该只关心它如何显示自己,当事情发生变化时, Controller 是 view 的代表。

委托(delegate)编程不是 Objective-C 所必需的语言特性。它只是 SDK 使用相当多的一种设计模式。但这是一个相当不错的模式,可以帮助您保持代码更简洁。

关于iphone - 为什么以及在何处使用 objective-c 中的委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3324373/

相关文章:

iphone - 如何以编程方式检查 Mobclix 广告是否正在运行?

iphone - 在 iPhone 中定位后图像变得困惑

ios - xcode 自动调整 xib 的大小在 iphone 6s plus 上不合适

iphone - 测试 View Controller ——iPhone

ios - 从自定义 UITableViewCell 委托(delegate) TabBar

ios - FontAwesome 图标仅在 Release模式下崩溃

ios - 从 APNS 消息中获取数据

iphone - 检查sqlite查询结果

ios - 每当我点击里面的整个应用程序时播放点击声音

iphone - 我们是否总是需要解雇我们提供的ModelViewController?