斯威夫特3 - 初始化AudioStreamBasicDescription场零

问题描述:

在Objective-C,你应该总是初始化一个新的音频流的基本描述结构的字段设为零,这样的:斯威夫特3 - 初始化AudioStreamBasicDescription场零

AudioStreamBasicDescription myAudioDataFormat = {0}; 

我目前在斯威夫特工作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 

我的第一行是否将初始字段初始化为零?否则,如何实现?

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

是的。如你所知,Swift生成一个默认初始化方法,将所有字段作为Swift定义结构的参数,它没有明确的初始化方法定义。

当导入C-structs时,Swift会生成另一个初始化程序,其格式为()。请参见本部分中old Xcode Release Notes

  • 进口C的结构现在有一个雨燕初始默认所有的结构的字段初始化为零。

既然是Swift 1.2,现在仍然可以使用此功能。

+0

谢谢你的快速和简单的答案! – Herickson