我尝试在我的应用程序中集成Swift代码。我的应用程序是用Objective-C编写的,我添加了一个Swift类。我做了这里描述的所有事情。但我的问题是Xcode还没有创建-Swift.h文件,只有桥接头。我创建了它,但它实际上是空的。
我可以在Swift中使用我所有的ObjC类,但我不能反之亦然。我用@objc标记了我的swift类,但它没有帮助。我现在该怎么办?
编辑:苹果说:“当你将Swift代码导入Objective-C时,你依靠xcode生成的头文件将这些文件公开给Objective-C。[…此头文件的名称是您的产品模块名称,后跟“-Swift.h”。
现在当我想导入这个文件时,它会给出一个错误:
//MainMenu.m
#import "myProjectModule-Swift.h" //Error: 'myProjectModule-Swift.h' file not found
@implementation MainMenu
这是我的FBManager.swift文件:
@objc class FBManager: NSObject {
var descr = "FBManager class"
init() {
super.init()
}
func desc(){
println(descr)
}
func getSharedGameState() -> GameState{
return GameState.sharedGameState() //OK! GameState is written in Objective-C and no error here
}
}
有两个条件,
在objective - c文件中使用swift文件。
使用你的objective c文件在swift文件。
因此,为了达到这个目的,你必须遵循以下步骤:
在objective-c项目中添加swift文件,反之亦然。
创建头文件(.h)。
进入构建设置,执行以下步骤搜索,
搜索这个文本“brid”并设置头文件的路径。
“定义模块”:YES。
“总是嵌入Swift标准库”:是的。
“安装Objective-C兼容头”:YES。
之后,清理并重新构建项目。
在objective - c文件中使用swift文件。
在这种情况下,首先在swift文件中你的类之前写“@objc”。
之后,在objective - c文件中,写这个,
#import "YourProjectName-Swift.h"
使用你的objective c文件在swift文件。
在你的头文件中,写这个,
#import "YourObjective-c_FileName.h"
我希望这对你有所帮助。
有两个条件,
在objective - c文件中使用swift文件。
使用你的objective c文件在swift文件。
因此,为了达到这个目的,你必须遵循以下步骤:
在objective-c项目中添加swift文件,反之亦然。
创建头文件(.h)。
进入构建设置,执行以下步骤搜索,
搜索这个文本“brid”并设置头文件的路径。
“定义模块”:YES。
“总是嵌入Swift标准库”:是的。
“安装Objective-C兼容头”:YES。
之后,清理并重新构建项目。
在objective - c文件中使用swift文件。
在这种情况下,首先在swift文件中你的类之前写“@objc”。
之后,在objective - c文件中,写这个,
#import "YourProjectName-Swift.h"
使用你的objective c文件在swift文件。
在你的头文件中,写这个,
#import "YourObjective-c_FileName.h"
我希望这对你有所帮助。