【发布时间】:2014-07-26 14:09:20
【问题描述】:
我最近一直在努力将 Swift 添加到现有项目中,以便在现实世界中进行尝试。
在项目中添加 Swift 源文件后,我对获取“Bridging Header”,即 Objective-C 到 Swift 没有任何问题。
但是应该公开标记为@objc 的Swift 类或ObjC 类的子类的*-Swift.h 头文件找不到 :-(
在我的主应用代码(仍然是 Objective-C)中,我没有看到任何关于如何使用 Swift 编写的新子类的具体说明。
我作为首席开发人员的应用程序有一个相当大的代码库(70.000 行),因此一次性转换它是不可能的。
【问题讨论】:
-
是的。它实际上是在询问您需要在 XCode IDE 的哪个位置创建这个 Swift->ObjC headed,因为在将 Swift 代码添加到现有 ObjC 项目时“默认”不会发生这种情况。
-
@Popeye 我不同意。在这种情况下,如果您正在编辑文件并从命令行编译,您将不会看到此问题。问题在于代表您执行(或应该执行)的 IDE。这很可能与项目设置有关,这绝对是一个IDE功能
-
@Popeye From the docs (PDF):当你将 Swift 代码导入到 Objective-C 中时,你依赖于一个 Xcode 生成的头文件 文件来将这些文件公开给 Objective -C。(我的粗体字,Apple 的斜体字。)这显然是一个关于 Xcode 的一个特性的问题,它可以帮助你同时使用 Swift 和 Objective-C,这三个标签肯定是合适的。
-
我确实在 gaige 和文档的帮助下解决了这个问题。而且我不只是扔掉标签:在这种情况下,头文件应该由 XCode 创建并且对 XCode 可见。不是,因此会产生错误。
-
@Popeye 没有任何错误陈述——我直接从第 46 页复制了这句话。你发现了一段相似但不同的段落,它或多或少地表达了相同的意思。
标签: objective-c xcode swift