斯威夫特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,现在仍然可以使用此功能。
谢谢你的快速和简单的答案! – Herickson