Ios Swift错误:Struct';XX和x27;必须在将成员存储到之前完全初始化

Ios Swift错误:Struct';XX和x27;必须在将成员存储到之前完全初始化,ios,swift,swift2,core-audio,Ios,Swift,Swift2,Core Audio,我试图用Swift定义AudioStreamBasicDescription 在Objective-C中,我使用了如下代码 AudioStreamBasicDescription ASBD; ASBD.mSampleRate = 8000; ASBD.mFormatID = kAudioFormatLinearPCM; ASBD.mFormatFlags = kAudioFormatFlagsCanonical | kAudio

我试图用Swift定义AudioStreamBasicDescription

在Objective-C中,我使用了如下代码

AudioStreamBasicDescription ASBD;
ASBD.mSampleRate            = 8000;
ASBD.mFormatID              = kAudioFormatLinearPCM;
ASBD.mFormatFlags           = kAudioFormatFlagsCanonical | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
ASBD.mFramesPerPacket       = 1;
ASBD.mChannelsPerFrame      = 1;
ASBD.mBitsPerChannel        = 16;
ASBD.mBytesPerPacket        = 2;
ASBD.mBytesPerFrame         = 2;
我转换的Swift代码如下

var ASBD: AudioStreamBasicDescription
ASBD.mSampleRate = 8000  // ERROR here
ASBD.mFormatID = kAudioFormatLinearPCM
ASBD.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked
ASBD.mFramesPerPacket = 1
ASBD.mChannelsPerFrame = 1
ASBD.mBitsPerChannel = 16
ASBD.mBytesPerPacket = 2
ASBD.mBytesPerFrame = 2

但是swift代码的第二行抛出了这个错误。我不知道为什么会出现这个错误。有人能帮我吗?

这意味着在使用结构之前需要完全初始化它
AudioStreamBasicDescription
是一种结构,因此在使用它之前需要对其进行初始化。正确的代码如下所示:

var ASBD: AudioStreamBasicDescription! = AudioStreamBasicDescription()
ASBD.mSampleRate = 8000
ASBD.mFormatID = kAudioFormatLinearPCM
ASBD.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked
ASBD.mFramesPerPacket = 1
ASBD.mChannelsPerFrame = 1
ASBD.mBitsPerChannel = 16
ASBD.mBytesPerPacket = 2
ASBD.mBytesPerFrame = 2

必要!