Swift 3 - 将AudioStreamBasicDescription字段初始化为零

时间:2017-03-02 20:00:56

标签: ios objective-c swift swift3 core-audio

在Objective-C中,您应该始终将新音频流基本描述结构的字段初始化为零,如下所示:

AudioStreamBasicDescription myAudioDataFormat = {0};

我目前正在 Swift 3 工作,我想知道如何将新AudioStreamBasicDescription结构的字段初始化为零?

var asbd = AudioStreamBasicDescription()
asbd.mSampleRate = SAMPLE_RATE
asbd.mFormatID = kAudioFormatLinearPCM
asbd.mFormatFlags = kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked
asbd.mBitsPerChannel = 16
asbd.mChannelsPerFrame = 1
asbd.mFramesPerPacket = 1
asbd.mBytesPerFrame = 2
asbd.mBytesPerPacket = 2

我的第一行会将初始字段初始化为零吗?否则怎么可以实现?

1 个答案:

答案 0 :(得分:1)

我的第一行是否会将初始字段初始化为零?

YES。

如您所知,Swift生成一个默认初始化程序,将所有字段作为Swift定义结构的参数,没有明确的初始化程序定义。

当导入C-structs时,Swift会生成另一个使用()的初始值设定项。请参阅old Xcode Release Notes

中的此部分
  
      
  • 导入的C结构现在在Swift中有一个默认的初始值设定项,它将所有结构的字段初始化为零。
  •   

从Swift 1.2开始,现在仍然可以使用此功能。