2014-11-24 54 views
3

我想從使用xcode 6.1的Swift代碼定位ios 8.1的vDSP框架中調用函數。下面是一個例子:從swift在較舊設備的模擬器中訪問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空氣。所有較舊的設備都會因爲vDSP函數名稱發生Swift Compiler錯誤「使用未解析的標識符」而失敗。來自與函數名稱相同的頭文件的typedefs可以。在橋接頭文件中明確導入Accelerate框架頭沒有區別。

我可以編譯並運行兩個較舊的設備上的代碼,包括ipod和視網膜ipad。

如果我從一個Objective-C文件調用vDSP函數,則沒有投訴。

如果我從一個函數從swift調用objc函數並從該函數調用vDSP,它就可以工作。

所以我的問題是,我做錯了什麼,如果沒有,是否有一個簡單的方法來使這項工作正常?能夠在4s屏幕尺寸下使用模擬器非常方便。

+0

你知道嗎?在我的代碼工作了幾周後,我剛剛開始看到這個問題 – ephemer 2015-03-10 01:00:31

+0

我得到了同樣的錯誤。 這可能與32位和64位架構有關嗎? – 2015-03-18 12:35:32

+0

同樣的錯誤在這裏,有興趣的答案 – oulipo 2015-03-18 14:48:44

回答

0

Apple在xcode 7 beta 4或5(7個月後)終於解決了這個問題