我是一个新的 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/