【发布时间】: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