有人在{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,我看到了这样的东西:
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文件中!
发布于 2018-03-27 12:51:07
我认为在Swift 4中,你必须标记更多的东西-- @objc (不再是隐含的了),但除此之外,它应该就在这里。
发布于 2018-03-27 14:56:37
您可以检查它以确认.h文件中的类名,例如:
@class文件名;
发布于 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会把大部分东西..。但它不会得到一切!
https://stackoverflow.com/questions/49513048
复制相似问题