在较旧设备的模拟器中从swift访问vDSP

时间:2014-11-24 21:29:48

标签: ios swift xcode6.1

我正在尝试使用xcode 6.1从使用swos代码定位ios 8.1的vDSP框架中调用函数。以下是一个例子:

public func create_fft_setup( length: Int ) -> FFTSetup {
let log2N = vDSP_Length(log2(CDouble(length)+1.0))
return vDSP_create_fftsetup(vDSP_Length(log2N), FFTRadix(kFFTRadix2))

}

此代码符合并运行在iphone 5s,6和6+以及ipad air的模拟器上。对于vDSP函数名称,所有旧设备都会因Swift编译器错误“使用未解析的标识符”而失败。来自与函数名称相同的头文件的typedef是可以的。在桥接头文件中明确导入Accelerate框架标头没有任何区别。

我能够在我拥有的两台旧设备上编译和运行代码,ipod和retina ipad。

如果我从目标C文件中调用vDSP函数,则不会有任何投诉。

如果我将一个函数从swift调用到objc中的函数并从该函数调用vDSP,它就可以工作。

所以我的问题是,我做错了什么,如果没有,是否有一种简单的方法可以使这项工作正常进行?能够将模拟器用于4s屏幕尺寸非常方便。

1 个答案:

答案 0 :(得分:0)

Apple终于在xcode 7 beta 4或5(7个月后)中解决了这个问题