更改任何 swift 代码后,Umbrella 头文件不会更新

Suh*_*hat 5 mobile objective-c ios swift

我有一个 Swift 和 Objective C 的混合项目。最初我创建了一个选择 Swift 作为语言的项目。我的 Objective C 桥接标头工作得非常好 - 因为我添加了在标头文件中手动更新的任何新的 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
Run Code Online (Sandbox Code Playgroud)

这个问题有什么解决办法吗?

ED-*_*209 3

我知道这是很久以前的事了,但我在向 Swift 代码添加协议时遇到了同样的问题,而且它没有被添加到 -Swift.h 头文件中。

问题是我的协议没有标记为Public。我改变了我的协议:

@objc protocol MyProtocol { //etc.... }
Run Code Online (Sandbox Code Playgroud)

对此:

@objc public protocol MyProtocol { //etc.... }
Run Code Online (Sandbox Code Playgroud)