use*_*225 39 xcode objective-c ios swift
我有一个用Objective-C编写的iOS项目.我在项目中创建了一个Swift类,成功生成了用于访问Swift中的objective-c的桥接头文件,并且它工作正常.
我的问题是另一种方式.我想在objective-c代码中导入Swift类.
在xcode,target - > Build Settings - > Swift Compiler部分,我看到Objective-C Generated Interface Header Name带有值的字段myModule-Swift.h,但是当我在objective-c类中导入这个头时:
#import "myModule-Swift.h"
Run Code Online (Sandbox Code Playgroud)
我收到编译器错误:
myModule-Swift.h file not found
Run Code Online (Sandbox Code Playgroud)
在项目中,我也找不到这个文件.我怎么解决这个问题?
我的xcode版本是6.4
Dan*_*rom 74
#import "YourModule-Swift.h" (示例,项目名称CData)
与步骤1,转到构建设置并搜索"定义模块"相同,将两个值都设置为YES
创建扩展一个类NSObject上的.swift文件
再次构建项目
YourModule-Swift.h在.m文件上导入文件(请注意它区分大小写,Mymodule!== MyModule)
Kar*_*sza 10
如果有人想知道为什么在花了几个小时解决这个问题后仍未解决,您可能会遇到与我类似的情况,我实际上是在开发框架而不是应用程序。
在这种情况下,Objective-C生成的接口标头的import语句的格式如下:
#import <ModuleName/ModuleName-Swift.h>
Run Code Online (Sandbox Code Playgroud)
小智 9
OMG ..实际的import语句不是"class-Swift.h"而是"projectname-Swift.h"
如果您在构建设置 - > Swift编译器代码生成 - > Objective-C生成的接口标题名称下查找,您可以找到该文件的名称
当我将Swift源拖入GUI时,未生成该文件.只有当我右键单击 - >将文件添加到"项目"时.然后它要求生成头文件.
我对Daniel Kroms的回答是:
切勿将-Swift.h标头添加到标头中。即使看起来可行。仅将导入添加到.m文件!
如果您在标头swift类中使用,请在@interface之前使用@class swiftclassname进行前向声明
然后,您将在代码中看到真正的错误。
| 归档时间: |
|
| 查看次数: |
38861 次 |
| 最近记录: |