Swift 2 CFType转换

时间:2015-08-25 01:56:05

标签: swift core-foundation

在Swift 1.2中,我有一个带有以下签名的C函数:

__nonnull CFArrayRef FDCreateSupportedAudioFileExtensions() CF_RETURNS_RETAINED;

我知道这个函数返回一个CFStringRef个实例的数组,所以我从Swift这样调用它:

let supportedAudioTypes = FDCreateSupportedAudioFileExtensions() as! [String]

一切都按预期工作。但是,在Swift 2中,由于强制转换(EXC_BAD_INSTRUCTION),此代码在运行时失败。我能够解决以下问题:

let supportedAudioTypes = FDCreateSupportedAudioFileExtensions() as NSArray as! [String]

我不确定从Swift 1.2到2.0的变化。这是当前版本的Swift中的一个错误还是我错过了什么?我读过的所有内容都暗示CFTypes是免费的,与他们的Swift同行联系在一起,所以我不确定为什么以前工作的东西现在都失败了。

0 个答案:

没有答案