首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在伞头中包括-Swift.h

在伞头中包括-Swift.h
EN

Stack Overflow用户
提问于 2015-10-08 18:40:38
回答 2查看 1.9K关注 0票数 10

我有一个混合的Swift和Objective项目。要访问Objective中的Swift公共API,API使用者目前必须导入"MyModule-Swift.h“。我已经有了一个名为"MyModule.h“的目标C伞头。但是,导入"MyModule.h“并不适用于Swift。我尝试在伞头中导入"MyModule-Swift.h“,但是它没有找到它(我假设它是由Xcode动态生成的)。

任何建议,以便API使用者总是可以导入"MyModule.h“来使用用Swift/Objective编写的公共API,我们将不胜感激。

====================================================================

编辑:我很抱歉没有花时间来正确地构建这个问题。我有一个名为MyModule的框架。

我有一个叫ABUser的目标C类,

代码语言:javascript
运行
复制
@interface ABUser: NSObject

- (void)walk;

@end

我想使用Swift向这个类添加新的行为,所以我定义了一个扩展

代码语言:javascript
运行
复制
extension ABUser {

func swiftWalk()

}

现在,假设我想从Objective应用程序访问在swiftWalk上定义的ABUser方法,我将不得不使用#import <MyModule/MyModule-Swift.h>。如果我想使用#import <MyModule/MyModule.h>方法,那么walk就可以工作了。这是假设伞头MyModule.h导入ABUser.h

我一直想把Objective应用程序交给#import <MyModule/MyModule.h>,而不必担心API是用Objective编写的,还是在框架中使用Swift编写的。因此,我尝试在伞头MyModule-Swift.h中导入MyModule.h。但是,我的目标-C应用程序没有编译如果那样做。不确定,这是否因为MyModule-Swift.h是由Xcode在构建过程中动态生成的。

编辑2:添加了一个示例项目在这里重现此问题:https://github.com/priteshshah1983/MyObjectiveCApp

相关代码在ViewController.m中。master分支的构建将失败。要使其正常工作,请查看working分支。

EN

Stack Overflow用户

发布于 2015-10-16 04:36:51

使用@import MyModule;的原因是“模块是框架可执行文件及其头的打包”(从这个帖子里)。

换句话说,当您使用@import MyModule;时,Objective会自动导入与模块相关的所有快捷和目标-C标题,而不能从伞头中包含快速标题。我建议您看看@import#import在链接“所以答案”中的区别。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33023544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档