【问题标题】:What's the easiest way of implementing own functions that are used all over the place in an large project?实现在大型项目中到处使用的自己的功能的最简单方法是什么?
【发布时间】:2009-05-20 13:02:33
【问题描述】:

我想创建一组功能,让生活更轻松。我在大约 60% 的项目文件中使用它们。我想知道在项目中包含这些最有效的方法是什么。

我考虑在它们所在的位置创建一个文件,并将该文件包含在我需要它们的每个文件中。另一方面,如果我能在显眼的地方只包含一次,那就太酷了,这样在整个项目中都可以使用。但我不知道那可能是什么地方。我不确定,但我认为这是不可能的。还是我对这个假设有误?

【问题讨论】:

  • 嗨 Swansus,你为什么改名 ;-)
  • 因为我觉得这个更合适;)
  • 在 cmets 中看起来确实不错 :-)
  • 是的,这也是取这个名字的好理由;-)

标签: iphone objective-c cocoa-touch


【解决方案1】:

我认为您更多地询问的是类设计以及如何构建 API,而不是如何将定义包含到其他 .m 文件中。

如果是这样的话,大致有三种选择:

  • 向您的应用委托添加一些内容 - 这是存储控制整个模型或应用本身的系统范围功能的好地方。
  • 创建一个signleton 类来保存您的方法。实际的单例或仅具有类方法的类(即使用前导 + 而不是 - 声明)
  • 通过将类别添加到系统类。

我认为,一般来说,您不想为所有实用方法做出单一决定 - 您应该根据具体情况采用每种方法(或方法组)并做正确的事情。例如,如果您有一个显示您自己的错误对话框样式的方法,您可以将它放在 AppDelegate 上。如果您有一种将字符串翻译成法语的方法,您可以将其添加为 NSString 类别。

一般来说,类别在这里是您的朋友 - 它们可以封装在单个 .h 和 .m 中,以便它们易于在项目中移动,而且它们的可访问性遵循目标类。

如果你不应该考虑实现一个单例。请参阅 Matt Gallager 的 discussion 了解如何做到这一点。

最后,如果确实是正确的决定,请扩展您的 AppDelegate - 可能带有一个类别 ;-)

【讨论】:

    【解决方案2】:

    您在 xcode 项目中拥有的 prefix.pch 文件用于添加您在项目的所有/几乎所有类中需要的所有导入语句。

    UIKit 和 Foundation 导入都写在这个文件中。

    因此,只需将您的导入语句添加到此文件中即可。您可以在 Groups & Files 的 Other Sources 文件夹中找到它

    【讨论】:

      【解决方案3】:

      我认为您可以在 ProjectName_Prefix.pch 中包含您的标题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-21
        • 2018-02-10
        • 1970-01-01
        • 2018-02-09
        • 2023-03-20
        • 2012-06-29
        相关资源
        最近更新 更多