我最近一直在努力将Swift添加到一个现有的项目中,以便在现实世界中进行尝试。
在向项目中添加Swift源文件时,我对获得“桥接头”没有任何问题,也就是说,Objective-C到Swift。
但是*-Swift.h头文件应该公开Swift类,无论是标记为@objc的类还是ObjC类的子类,都找不到:-(
在我的主应用程序代码(仍然是Objective-C)中,我没有看到任何关于如何使用我的新子类的具体说明,用Swift编写。
我是首席开发人员的应用程序有一个相当大的代码库(70.000行),所以一次性过渡它是不可能的。
文件名的前面总是您的目标名称。它被称为产品名称,但实际上它是目标名称。
因此,如果你想为一个新目标构建它,准备好期待that_target-Swift.h文件。
一种处理方法是
为每个目标添加一个预处理器,它是目标本身的名称(不带空格)。MY_TARGET = 1。将此添加到项目设置->构建设置->预处理器宏为每个目标。
如果您正在使用PCH文件,
在PCH文件中添加这些行
#if MY_TARGET==1
#include "My_Target-Swift.h"
#elif THAT_TARGET==1
#include "That_Target-Swift.h"
#endif
使用PCH文件的优点是您不必在任何地方都包含头文件。
如果您不使用PCH文件,只需在单个头文件中添加这些相同的行,并在需要使用swift类的任何地方包含该头文件。
这应该可以正常工作。