2017-03-02 50 views
1

在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 

我的第一行是否將初始字段初始化爲零?否則,如何實現?

回答

2

我的第一行是否將初始字段初始化爲零?

是的。如你所知,Swift生成一個默認初始化方法,將所有字段作爲Swift定義結構的參數,它沒有明確的初始化方法定義。

當導入C-structs時,Swift會生成另一個初始化程序,其格式爲()。請參見本部分中old Xcode Release Notes

  • 進口C的結構現在有一個雨燕初始默認所有的結構的字段初始化爲零。

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

+0

謝謝你的快速和簡單的答案! – Herickson