不能在Object-C中使用SWIFT类

不能在Object-C中使用SWIFT类

我试着整合Swift我的应用程序是用Objective-C我加了一个Swift班级,等级。我做了所有描述这里..但我的问题是Xcode尚未创建-Swift.h文件,只有桥接头。所以我创造了它,但它实际上是空的。我可以在SWIFT中使用我所有的objc类,但反之亦然。我用@objc但没什么用。我现在能做什么?

编辑:Apple说:“当您将SWIFT代码导入Object-C时,您依赖于Xcode-generated将这些文件公开给目标-C的头文件。[.]这个标题的名称是您的产品模块名称,后面加上“-Swift.h”。“

现在,当我想导入该文件时,它会出现一个错误:

    //MainMenu.m

    #import "myProjectModule-Swift.h" //Error: 'myProjectModule-Swift.h' file not found

    @implementation MainMenu

这是我的FBManager文件:

@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
    }}


天涯尽头无女友
浏览 676回答 3
3回答

侃侃无极

我花了大约4个小时试图让Swift在我的Xcode目标-C基础项目。我的myproject-Swift.h文件已成功创建,但我的Xcode没看到我的Swift-classes..所以,我决定创建一个新的Xcode基于objc的项目,最后,我找到了正确的答案!希望这篇文章能帮助到一些人:)基于Xcode objc项目的逐步SWIFT集成:创造新*.swift文件(在Xcode中)或使用Finder添加它创建一个Objective-C bridging header当Xcode问你这件事时实现您的SWIFT类:import Foundation// use @objc or @objcMembers annotation if necessaryclass Foo {     //..}打开生成设置并检查这些参数:定义模块: YES在搜索栏中复制和粘贴参数名称产品模块名称: myproject确保产品模块名称不包含任何特殊字符安装目标-C兼容性标头: YES一旦你加入*.swift此属性将显示在“生成设置”中的项目中。目标-C生成的接口头: myproject-Swift.h此标头由xcode自动生成。目标-C桥接头: $(SRCROOT)/myproject-Bridging-Header.h在*.m文件中导入SWIFT接口头#import "myproject-Swift.h"不要注意错误和警告。清理和重建Xcode项目利润!

侃侃尔雅

不要自己创建头文件。删除你创建的那个。确保您的SWIFT类被标记为@objc从(直接或间接)派生的类继承NSObject.如果项目中有任何编译器错误,Xcode将不会生成文件-确保项目构建干净。

慕的地6264312

不要自己创建头文件。删除你创建的那个。确保您的SWIFT类被标记为@objc从(直接或间接)派生的类继承NSObject.如果项目中有任何编译器错误,Xcode将不会生成文件-确保项目构建干净。
打开App,查看更多内容
随时随地看视频慕课网APP