【问题标题】:What is a delegate?什么是代表?
【发布时间】:2011-03-16 10:45:28
【问题描述】:

我在目标 c.. 上编写了一些东西。但我仍然不明白,我根本不知道/理解什么是委托。

也许因为我的主要编程语言是 C++ 和 Java...不知道。

我在网上搜索了英文解释,但是,我好像不会说英语:)

【问题讨论】:

    标签: objective-c language-agnostic design-patterns terminology


    【解决方案1】:

    委托是一个对象的实例,它实现了一堆 C 程序员称之为回调的东西,但是以面向对象的方式。像大多数新概念一样,它实际上只是一个重命名和混淆的旧约定。

    There are some nice examples here on wikipedia.

    【讨论】:

    • 没有理由不能在 C++ 或 Java 中使用委托。
    • 那么,当我执行 myObject.delegate = myDelegateObject 之类的操作时,我到底在做什么?
    • 您告诉 myObject 在需要提供信息或发生某些事件时调用由 myDelegateObject 实现的方法。这些事件应该记录在 myObject 类的文档中。 myDelegateObject 还可以有其他方法,并被设计为执行 myObject 作为代理所需之外的其他事情。
    • 所以.. 是一种保存代码之类的方法,好吧,我想我明白了。
    【解决方案2】:

    在 Objective-C 中,委托是符合特定协议的对象,另一个对象可以依赖它来实现特定功能。这与许多其他语言中的委派是不同的概念,而且由于术语相同,因此可能会让人感到困惑。

    这是我在开始使用 Objective-C 编程时发现的一篇非常有用的文章:

    http://developer.apple.com/mac/library/documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 2010-10-28
      • 2019-10-29
      • 2011-03-02
      • 1970-01-01
      • 2022-08-18
      • 2023-02-02
      • 2010-12-02
      相关资源
      最近更新 更多