我有一个Swift 4项目,它导入了一个用简单C编写的库。一个桥接头已经设置并正常工作。我只有一个问题:C库包含一个函数computeFoo
,我希望将其包装为Swift中具有相同名称的静态类函数:
class Foo {
static func computeFoo(a: Double, b: Double) -> Double {
return computeFoo(a, b)
}
}
编译时,Xcode正确抱怨:
使用' computeFoo'指静态方法' computeFoo(a:Double,b:Double)'而不是全局功能' computeFoo'在模块' __ ObjC'
使用' __ ObjC。'在模块' __ ObjC'
中引用全局函数
但是,提议的修复程序也不会编译:
static func computeFoo(a: Double, b: Double) -> Double {
return __ObjC.computeFoo(a, b)
}
结果:
使用未解析的标识符' __ ObjC'
是否可以将这些功能名称相等或者是否必须重命名其中一个功能?
答案 0 :(得分:2)
首先应该尝试的一件事是将ProductModuleName添加到全局函数中:
class Foo {
static func computeFoo(a: Double, b: Double) -> Double {
return ProductModuleName.computeFoo(a, b)
}
}
(假设您知道自己的ProductModuleName
。)
如果这不能解决您的问题,您可能需要澄清有关它的更多信息。