【问题标题】:How do I reference a controller from within the object it created?如何从它创建的对象中引用控制器?
【发布时间】:2011-11-10 02:33:03
【问题描述】:

所以我有一个 PanelController,它是一个 NSWindowController,它实例化了一个名为 FileUploader 的对象。但是在 FileUploader 内部,我希望能够更新面板上的一些文本,通知用户到目前为止已经取得的进展。但是我不知道如何引用 PanelController ,因为我无法实例化一个新的。

我是否应该使用 ApplicationDelegate 作为中间人,如果是,我应该如何引用它?如果是这样,我是否需要ApplicationDelegate来实例化PanelController和FileUploader,但是我仍然不明白如何引用ApplicationDelegate。

【问题讨论】:

    标签: iphone objective-c ios multithreading asynchronous


    【解决方案1】:

    Apple 建议在这种情况下使用 Delegates

    以下是一些关于如何制作代表的 SO 答案:

    1. How Do I Create Delegates in Obj-C
    2. How Does Delegate Work in Obj-C

    【讨论】:

      【解决方案2】:

      还可以考虑使用块,这是另一种更现代的苹果回调方法。 Apple 在他们的新 API 中越来越多地使用它。

      这是关于更新 UI 并使其异步的特定 SO:

      GCD, Threads, Program Flow and UI Updating

      这是关于块和委托作为回调的另一篇 SO 文章

      How to simplify callback logic with a Block?

      【讨论】:

      • 块是解决这个问题的好方法。
      • 是的,我也会投票给区块。与 GCD 一起,它们非常适合异步编程。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      相关资源
      最近更新 更多