Ios Swift错误:Struct';XX和x27;必须在将成员存储到之前完全初始化
我试图用Swift定义AudioStreamBasicDescription 在Objective-C中,我使用了如下代码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
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
是
代码>必要!