我有一个 Swift 和 Objective C 的混合项目。最初我创建了一个选择 Swift 作为语言的项目。 我的 Objective C Bridging header 工作得非常好——因为我在 header 文件中添加了我手动更新的任何新的 obj c 代码。 我在 obj c 中导入了“ProjectName-Swift.h”文件,它工作正常。现在,当我更改我的 swift 文件中的任何代码或添加新的 swift 文件时,我可以看到“ProjectName-Swift.h”文件未更新为新的更改。我尝试手动更改文件并且成功了。 我清理了项目并重建了但没有运气。我删除了生成的“ProjectName-Swift.h”文件并尝试构建,但仍未显示新的更改。
SWIFT_CLASS("_TtC8MyProject13Type2")
@interface Type2 : NSObject
+ (Type2 *)sharedInstance;
- (float)method1:(Type2 *)entity amount:(float)amount;
- (float)method2:(Type1 *)category amount:(float)amount;
- (instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
这个问题有什么解决办法吗?
最佳答案
我知道这是很久以前的事了,但我只是在向我的 Swift 代码添加协议(protocol)时遇到了同样的问题,而且它没有被添加到 -Swift.h 头文件中。
问题是我的协议(protocol)没有被标记为Public。我改变了我的协议(protocol):
@objc protocol MyProtocol { //etc.... }
为此:
@objc public protocol MyProtocol { //etc.... }
关于ios - 更改任何 swift 代码后 Umbrella 头文件未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26886123/