我在StackOverflow上读过多个线程,我似乎无法找到问题的答案。我的文件夹层次结构如下:
"Project Name"
- "Helpers"
"FileIWantToImport.swift"
"FileIWantToImportTo.m"
我有:
FMB
Defines Modules
设为YES
#import FMB-swift.h
没有任何问题@objc
,因此它显示为@objc class MyClass: NSObject
但是。我终生难以理解为什么它不会导入FileIWantToImportTo.m
我试过了:
#import "FMB-swift.h"
#import "Helpers/FMB-swift.h"
#import "Product Name/Helpers/FMB-swift.h"
#import <FMB-swift.h>
#import <Helpers/FMB-swift.h>
#import <Product Name/Helpers/FMB-swift.h>
我得到的只是"file not found"
错误。有人可以指点我正确的方向吗?我查看了所有其他主题和苹果文档,但无法弄明白。我正在运行Xcode 7和10.11 GMs,如果这有所不同。
编辑:这是一个示例项目https://github.com/Aghassi/Example-Project
答案 0 :(得分:3)
这是你需要做的:
在基于ObjC的项目中创建Swift文件。不需要创建桥接头,因为他们习惯于从swift看到ObjC代码,而不是来自ObjC的快速代码。
在目标中,在构建设置下将Embedded Content Contains Swift Code
设置为是
你的Swift文件应该有一个@objc公共类。
@objc public class Example: NSObject {
public func printSomething(text: String) {
print(text);
}
}
检查项目的名称,并在.m文件中添加#import <ProjectsName-Swift.h>
,您应该能够实例化Swift文件中定义的类及其所有公共方法。您可能需要在导入-Swift.h文件之前构建项目。
这是一个使用Swift代码的ObjC类的示例项目:https://github.com/lucaslt89/Example-Project.git