ios - 更改任何 swift 代码后 Umbrella 头文件未更新

标签 ios objective-c mobile swift

我有一个 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/

相关文章:

ios - 当 iOS 应用程序处于挂起状态时,如何处理重大位置变化?

mobile - 比桌面更快的移动网站

android - 如何在 NestedScrollView 中显示滚动条

IOS无限后台时间

ios - 如何生成用于 iOS 的 GCM 的有效 APNS 证书 (.p12)?

ios - 如何使用 segue 为 Facebook iOS Friend Picker 自定义背景和单元格?

ios - 串行调度队列不等待

javascript - 在不适合移动设备的页面上创建适合移动设备的小部件

ios - 使用 CAShapeLayer 和 UIBezierPath 剪辑屏蔽 uiview

ios - 识别 Objective-C 中的 NULL 值