繁体   English   中英

如何为多个目标使用不同的.h文件?

[英]How can I use different .h files for several targets?

我有一个有几个目标的项目。 对于我的大多数课程,我可以使用单个.h文件并更改.m文件中的详细信息(为每个目标添加一个不同的.m文件)。

对于我的一个UIViewController子类,我需要为不同的目标声明不同的UILabel IBOutlet (每个目标根据可用的内容显示不同的标签集)。 问题在于头文件无法定位。 它们旁边没有复选框来指定目标成员身份。

我一直在处理的方法是为所有目标添加插座,而忽略未使用的插座。 这似乎并不理想。

我是否需要为此使用标题构建阶段? 解决此问题的最佳方法是什么? 谢谢。

编辑:我应该已经提到过,我希望所有.h文件都具有相同的名称: PlaceViewController.h

您可以使用预处理程序指令有选择地包括头文件。 例如

#if TARGET_OS
   #import "FirstTarget.h"
#else
   #import "SecondTarget.h"
#endif

如果标题的名称相同,则可以将不同的文件夹用于不同的目标:

#if TARGET_OS
   #import "First/Target.h"
#else
   #import "Second/Target.h"
#endif

您可以在此处阅读更多关于条件 句的信息

标头本身不会被编译,而是包含在其他文件中,然后再进行编译。 您可以在这些文件中使用条件编译,以包括目标的正确标头。 在每个目标的预处理器符号中定义一个唯一的符号,并相应地包含适当的标头:

#if defined(TARGET_ONE)
#include "HeaderOne.h"
#elif defined(TARGET_TWO)
#include "HeaderTwo.h"
#endif

很抱歉回答几年来太晚了,但是最近我遇到了同样的问题,有一种解决方法:

  • 假设您已经通过复制原始目标创建了一个新目标。 右键单击“项目浏览器”中的第一个(原始) .h文件,然后在Finder中打开该文件。
  • 在Xcode中,右键单击该文件,然后将其从项目中删除(仅删除引用,不要移至回收站)。
  • 在Finder中,创建两个文件夹(单个文件夹中不能有两个同名文件),然后在两个文件夹中移动/复制原始.h文件。
  • 现在,将第一个文件夹拖放到项目中的某个位置,然后在弹出带有目标的窗口时,仅选择第一个目标。
  • 与第二个文件夹相同,仅选择第二个目标。

瞧,您现在应该有两个同名的.h文件。

注意事项:如果您的.h文件具有NS_ENUM则Xcode似乎有随机问题。 它可能可以解决,但我仍然没有弄清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM