【问题标题】:Application Delegate Usage应用程序委托使用
【发布时间】:2012-03-29 21:37:23
【问题描述】:

我对 Objective-C 和 cocoa 编程还很陌生,所以我不太了解 App Delegates 的概念。

当我们创建一个可可应用程序时,我们是将我们的代码(方法、操作、出口)存储在 App Delegate 文件中,还是我们创建一个新文件作为控制器和代码。现在,我将所有代码都放在这两个文件中,但根据我的阅读,您的目标是尝试使您的 App Delegate 文件尽可能小。

我的问题是:应用委托文件的用途是什么?

【问题讨论】:

    标签: objective-c cocoa delegates


    【解决方案1】:

    applicationDidFinishLaunching:: 这只是您的应用程序入口点。通常你只创建窗口和你的第一个 ViewController,或者你的 Tabbar - 你的主要起始界面类 - 在这里。

    NSApplicationDelegate 的所有其他委托方法当然还有其他功能。它们中的大多数都是点,您可以对应用程序的状态做出反应。打开/关闭/后台/重新打开等。

    但您可能应该看看 iPhone 文档中的编程教程。有很多关于如何构建 objc 项目的信息。例如。看这里:Start Developing iOS Apps Today

    或者,如果您正在寻找 OSX 应用程序,请看这里:

    1) Your First Mac App
    2)Mac App Programming Guide

    还有一堆Sample code

    【讨论】:

    • 您有桌面应用程序(不是 iphone)的任何文档吗?
    • 非常感谢。非常感谢!
    【解决方案2】:

    App Delegate 是一个处理程序位置,用于处理应用程序上发生的事件。诸如打开和关闭之类的事情。它还在应用程序执行的整个过程中挂起,您可以随时通过执行[[NSApplication sharedApplication] delegate] 来获取单例实例。

    这对于在控制器之间处理对象和充当事件路由器非常有用。如果您需要在代码的不同部分修改/访问它,您还可以在委托上存储一些数据。

    这一切都适用于简单的应用程序,但随着事情变得越来越复杂,您需要进行一些职责分工。 AppDelegate 应该只对发生在应用程序本身上的操作负责,而不是在另一个视图或控制器上。将所有/大部分代码放在 AppDeligate 中肯定是不好的做法,并且随着事情变得更加复杂并且需要维护,这将导致糟糕的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      相关资源
      最近更新 更多