【问题标题】:Wrong Module-Swift.h header is generated with import to itself错误的 Module-Swift.h 标头是通过导入到自身生成的
【发布时间】:2019-07-04 10:36:27
【问题描述】:

所以我到处混用 swift 和 objc。 我有一个名为 Renetik 的开发吊舱。 它有一些用 swift 编写的扩展,但主要是客观的 c 代码。 现在,我编写了一些类并在主项目中很好地使用了它,并想将其移至 Renetik 开发 pod。当我在 Renetik-Swift.h 中以某种方式执行此操作时,会生成错误的导入并且项目不会编译。

#import <Renetik/Renetik.h>

然后我做了很多实验。并发现当我实际从 pod 本身中定义的 swift 类函数类型返回时会生成错误的导入。就在我尝试在主要是objective-c的开发Pod中实现它时,它正在发生。当我尝试修改某些类以返回 pod 本身中定义的 objc 类时,其他 swift 扩展和类会起作用。

我会在一切正常的时候写例子。这编译得很好,我可以从主项目中调用函数 testMe:

@objc public class ReplaceMe: NSObject {
    @objc public func testMe() {
        let variable = CSResponse<NSObject>()
        variable.cancel()
    }
}

正如我之前所说,只是生成了这个小的更改和错误的标题:

@objc public class ReplaceMe: NSObject {
    @objc public func testMe() -> CSResponse<NSObject> {
        let variable = CSResponse<NSObject>()
        variable.cancel()
        return variable
    }
}

我在 podfile 中使用 use_frameworks!,因为 use_modular_headers! 因其他原因不起作用。我可以在 Github 项目中设置分支,因为这是开源的。

【问题讨论】:

    标签: ios objective-c swift cocoapods


    【解决方案1】:

    因此,似乎只有为 Swift 文件创建其他 pod 才是破解的可能性。在 podspec 中定义对已发布版本的依赖,并在宿主应用程序 podfile 中使用 :path =&gt; 添加依赖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      相关资源
      最近更新 更多