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

时间:2014-11-12 11:41:54

标签: ios objective-c mobile swift

我有一个Swift和Objective C的Mix项目。最初我创建了一个选择Swift作为语言的项目。 我有Objective C Bridging标头工作得非常好 - 因为我添加了我在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

针对此问题的任何解决方案?

1 个答案:

答案 0 :(得分:2)

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

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

@objc protocol MyProtocol { //etc.... }

到此:

@objc public protocol MyProtocol { //etc.... }