为了账号安全,请及时绑定邮箱和手机立即绑定

不能在Object-C中使用SWIFT类

不能在Object-C中使用SWIFT类

天涯尽头无女友 2019-07-01 15:26:51
不能在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     }}
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

我花了大约4个小时试图让Swift在我的Xcode目标-C基础项目。我的myproject-Swift.h文件已成功创建,但我的Xcode没看到我的Swift-classes..所以,我决定创建一个新的Xcode基于objc的项目,最后,我找到了正确的答案!希望这篇文章能帮助到一些人:)

基于Xcode objc项目的逐步SWIFT集成:

  1. 创造新

    *.swift

    文件(在Xcode中)或使用Finder添加它
  2. 创建一个

    Objective-C bridging header

    当Xcode问你这件事时
  3. 实现您的SWIFT类:

    import Foundation// use @objc or @objcMembers annotation if necessaryclass Foo {
        //..}
  4. 打开生成设置并检查这些参数:

    • 定义模块: YES

      在搜索栏中复制和粘贴参数名称

    • 产品模块名称: myproject

      确保产品模块名称不包含任何特殊字符

    • 安装目标-C兼容性标头: YES

      一旦你加入*.swift此属性将显示在“生成设置”中的项目中。

    • 目标-C生成的接口头: myproject-Swift.h

      此标头由xcode自动生成。

    • 目标-C桥接头: $(SRCROOT)/myproject-Bridging-Header.h

  5. 在*.m文件中导入SWIFT接口头

    #import "myproject-Swift.h"

    不要注意错误和警告。

  6. 清理和重建Xcode项目
  7. 利润!


查看完整回答
反对 回复 2019-07-01
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

不要自己创建头文件。删除你创建的那个。

确保您的SWIFT类被标记为@objc从(直接或间接)派生的类继承NSObject.

如果项目中有任何编译器错误,Xcode将不会生成文件-确保项目构建干净。


查看完整回答
反对 回复 2019-07-01
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

不要自己创建头文件。删除你创建的那个。

确保您的SWIFT类被标记为@objc从(直接或间接)派生的类继承NSObject.

如果项目中有任何编译器错误,Xcode将不会生成文件-确保项目构建干净。


查看完整回答
反对 回复 2019-07-01
  • 3 回答
  • 0 关注
  • 669 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信