代码之家  ›  专栏  ›  技术社区  ›  Allyn

在xcode/objective-c中的项目之间共享类

  •  29
  • Allyn  · 技术社区  · 14 年前

    我如何有效地共享课程? 我应该把它作为一个项目重做,只需要两个构建目标吗?我该怎么做?

    还有其他信息吗?

    谢谢

    6 回复  |  直到 14 年前
        1
  •  14
  •   Community davidgyoung    7 年前

    如果您有两个或多个产品将共享大量的公共代码,比如一套产品,您可能需要考虑创建一个单独的XCODE项目,然后为将从共享和产品特定代码构建的每个产品添加一个不同的目标。有了大量的共享代码,一对客户机/服务器产品可能是这种方式的最佳选择。

    我真的很喜欢每个相关的产品都放在一个xcode项目“屋顶”下,因为你不必在xcode项目上跳来跳去,而且它真的简化了共享文件的SCM管理。

    以下是苹果公司文档的链接: https://developer.apple.com/library/mac/#featuredarticles/XcodeConcepts/Concept-Targets.html

    更新:在xcode中配置特定于目标的头文件时会有一点额外的麻烦(总是有一些事情……对吧?!);例如,对该目标使用“myHeaderA.h”,对该目标使用“myHeaderB.h”。下面是一篇分享如何做到这一点的好文章: controlling which project header file Xcode will include . 注意:这样设置之后,xcode不再知道搜索任何目标头文件的任何路径,因此必须手动设置它们。为此,右键单击获取目标信息,选择构建类别,然后通过“标题搜索路径”设置添加路径。将按输入的顺序搜索路径。

        2
  •  13
  •   Chuck    14 年前

    一个非常好的方法是将共享代码放入SCM系统中,并将其包含到您想要的每个项目中。通过这种方式,每个项目都可以共享代码,您可以在任何地方编辑代码,并在感觉良好时将更改检查回源代码管理,然后所有其他项目都可以从您的工作中受益。

    与其他方法相比,这有很大的优势:

    与框架

    与仅包含文件相比

        3
  •  4
  •   mmmmmm    14 年前

    最好的方法是创建一个包含共享类的单独框架。这可以编译一次并链接到两个应用程序项目中。

    看见 Apple's doc on what are Frameworks .

        4
  •  2
  •   Felix    14 年前

    最快的解决方案是只向其中一个项目添加.h和.m文件的引用。只需取消选中xcode中“添加现有文件”对话框中的“复制”复选框。请记住,如果移动/共享项目,可能还需要复制引用的文件。

        5
  •  2
  •   James Alvarez    10 年前

    我有一个类似的问题,上面被接受的答案可能会给新手带来问题。

    我有一个带有应用程序和捆绑插件的项目,下面是我在Xcode 6中遵循的步骤:

    1. 在框架的主标题中,包含所有共享代码的标题。
    2. 构建框架以测试其构建(例如,选择框架的方案并单击播放)
    3. 转到应用程序和插件包的构建阶段部分,将新框架添加到目标依赖项,并将二进制文件链接到库
    4. 要在应用程序和捆绑包的代码中包含框架内容,只需使用主标题,然后使用<&燃气轮机;而不是“例如,如果您的框架被称为Foo use#import

    在运行主应用程序时,对框架的更改将自动编译,因此实际上可以忽略它们是不同目标的事实。

        6
  •  1
  •   Spina    14 年前

    我在这里找到了一篇关于这个主题的好文章: http://www.clintharris.net/2009/iphone-app-shared-libraries/ 这回答了我的问题,特别是关于多个iPhone应用程序共享代码的问题。上面没有提到框架,所以我不能说他们的建议(xcode项目参考)是否比框架解决方案更好。