【发布时间】:2018-07-04 20:26:07
【问题描述】:
我有一个用 Objective C 编写的现有项目 (EP)。我们的团队决定用 Swift 开发一个新项目 (NP),并将现有项目(用 Objective C 编写)添加为新项目中的一个功能 (在一个选项卡中显示现有应用程序作为一项功能)。
这是我所做的:
在 Swift 中创建了一个新项目,并将现有项目添加为 Xcode 中的子项目
在新项目的构建阶段,我将现有项目(构建产品)添加为目标依赖项。
为 Swift 项目(新项目-Bridging-Header.h)创建了一个桥接标头,并将 Objective-C 桥接标头中的标头称为 NP/NP-Bridging-新项目的Build Settings下的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.
HomeViewController 被 Xcode 识别,因为它在键入时自动填充,并且 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)
珍惜你的时间。
【问题讨论】:
标签: ios objective-c swift