我有一个用Objective C编写的现有项目(EP)。我们的团队决定在Swift中开发一个新项目(NP),并将现有项目(用Objective C编写)添加为新项目的功能(在一个标签中显示现有应用作为一项功能)。
这是我所做的:
在Swift中创建了一个新项目,并将现有项目添加为Xcode中的子项目
在新项目的构建阶段下,我添加了现有项目(构建产品)作为目标依赖项。
为Swift项目创建了一个桥接标头(新的project-Bridging-Header.h),并将 Objective-C桥接标头中的标头称为 NP / NP-Bridging-新项目的构建设置下的Header.h 。
在标题搜索路径下,我添加了 $(SRCROOT)/ Path_To_Sub_Project 并将其设置为递归。 (在项目中和新项目的目标中)
在 Other Linker Flags(其他链接器标记)下,添加了 -all_load 和 -ObjC 。
在桥接头文件中添加了所需的Objective-C文件。
问题: 在一个新项目中,当我尝试引用目标c类时,遇到了引用问题。
ViewController.swift
//viewdidload
let vc = HomeViewController() //This is an objective c class.
Xcode可以识别HomeViewController,因为它在键入时会自动填充,并且Xcode不会引发任何实时问题。但是,当我尝试构建新项目时,出现以下错误。
错误:
"_OBJC_CLASS_$_HomeViewController", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
感谢您的时间。
答案 0 :(得分:0)
我怀疑问题与您要编译的体系结构有关。