首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >{Module_name}-Swift.h文件与SWIFT3.2不同,仅在Swift 4项目中不能很好地工作

{Module_name}-Swift.h文件与SWIFT3.2不同,仅在Swift 4项目中不能很好地工作
EN

Stack Overflow用户
提问于 2018-03-27 12:37:14
回答 4查看 300关注 0票数 1

有人在{Module_name}-Swift.h文件中遇到Swift 4项目的问题吗?我注意到-Swift.h自动生成的文件与Swift 4语法不太一样,Swift 3.2

例如,-Swift.h文件并不包含在从NSObject类继承的自定义Swift类中实现的所有变量和方法!

我使用过@objc@class关键字,但没有办法。

  • 我没有任何错误!问题是,如果我创建了这样一个类:

导入基础类Utils: NSObject {让abc: String?func xyz() { print("") }}

然后导航到{Module_name}-Swift.h,我看到了这样的东西:

代码语言:javascript
复制
SWIFT_CLASS("_TtC3{Module_name}5Utils") 
@interface Utils : NSObject 
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 
@end

问题

let abc: String?func xyz()都从未包含在{Modue_name}-Swift.h文件中!

EN

回答 4

Stack Overflow用户

发布于 2018-03-27 12:51:07

我认为在Swift 4中,你必须标记更多的东西-- @objc (不再是隐含的了),但除此之外,它应该就在这里。

票数 0
EN

Stack Overflow用户

发布于 2018-03-27 14:56:37

您可以检查它以确认.h文件中的类名,例如:

@class文件名;

票数 0
EN

Stack Overflow用户

发布于 2018-03-27 21:11:02

生成的文件{Module}-Swift.h不包含变量和方法,生成该文件是为了让您访问模块命名空间。

生成的模块的实际接口位于Module.swiftmodule/arm64.swiftmodule中(取决于构建的体系结构)。

关于其内容的更多信息:

但是..。该格式在任何地方都没有文档化,可能会发生更改。一个很好的起点是在include/swift/Serialization/ModuleFormat.h中查看

至于为什么它不起作用- Swift 4有一个迁移过程,请确保您已经遵循了它:https://swift.org/migration-guide-swift4/

Xcode会把大部分东西..。但它不会得到一切!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49513048

复制
相关文章

相似问题

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