Я пытаюсь вызвать функции в инфраструктуре vDSP с помощью кода Swift для iOS 8.1 с использованием xcode 6.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 воздуха. Все устаревшие устройства не работают с ошибкой Swift Compiler «использование неразрешенного идентификатора» для имени функции vDSP. Typedefs из того же заголовочного файла, что и имена функций, в порядке. Явный импорт заголовка Accelerate в заголовочный файл моста не имеет значения.
Я могу скомпилировать и запустить код на двух старых устройствах, которые у меня есть, ipod и retina ipad.
Если я вызываю функции vDSP из объектно-C-файла, жалобы нет.
Если я вызываю функцию из swift в функцию в objc и вызываю vDSP из этой функции, она работает.
Итак, мой вопрос: я делаю что-то неправильно, а если нет, есть ли простой способ сделать эту работу должным образом? Это удобно для использования симулятора для размера экрана 4s.
Вы поняли это? Я просто начал эту проблему, казалось бы, случайно после того, как мой код работал в течение недель. – ephemer
У меня такая же ошибка. Возможно ли это, что это связано с архитектурой 32 и 64 бит? –
Такая же ошибка здесь, заинтересованная в ответе – oulipo