所以我到处都是swift和objc。 我有一个名为Renetik的开发平台。 它有一些用swift编写的扩展,但主要是目标C代码。 现在,我编写了一些类,并在主项目中很好地使用了它,并希望将其移至Renetik开发吊舱。当我在Renetik-Swift.h中以某种方式执行此操作时,将生成错误的导入,并且项目将无法编译。
#import <Renetik/Renetik.h>
然后我做了很多实验。并发现当我实际上从pod本身定义的swift类函数类型返回时,生成了错误的导入。当我尝试在主要是Objective-C的Development 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项目中设置分支,因为这是开源的,所以会发生这种情况。
答案 0 :(得分:0)
因此,似乎唯一没有破解的可能是仅为Swift文件创建其他pod。在podspec依赖项中定义要发布的版本,并在宿主应用程序podfile中使用:path =>
添加依赖项。