私はSwiftにとって非常に新しいです。私の質問が馬鹿に聞こえたら許してください。配列の作成によって '式のタイプがより多くのコンテキストなしで曖昧です'
次のように私は、構造を宣言している:
struct RecorderState
{
var setupComplete: Bool
var dataFormat: AudioStreamBasicDescription
var queue: UnsafeMutablePointer<AudioQueueRef>
var buffers: [AudioQueueBufferRef]
var recordFile: AudioFileID
var bufferByteSize: UInt32
var currentPacket: Int64
var isRunning: Bool
var recordPacket: Int64
var errorHandler: ((NSError) -> Void)?
}
は、今私は、その内部構造を初期化し、私のクラスのinitメソッドを記述する必要があります。
問題があり、エラーは、「式のタイプは、より多くの文脈のない曖昧である」行buffers: Array<AudioQueueBufferRef>(repeating: 0, count: numberBuffers)
に表示を続けています。
私は他の方法を試してみましたが、それでも同じ。
私はここError: 'Type of expression is ambiguous without more context'から読んだものから、コンパイラは、したがって、それはエラーを示してオブジェクトの型を知らないということです。しかしここで、私はすでにそれを宣言しました。
コンストラクタメソッドの後に追加して再度キャストしようとしましたが、まだ動作しませんでした。
私はなぜ理解していません。私は、バッファの変数の型がを含むArray
であると宣言しました。しかし、どのようにコンパイラはまだそれを検出することはできませんか?
' AudioQueueBufferRef'が '' UnsafeMutablePointerのためtypealiasである、あなたは '0'を渡すことはできません。 –
@MartinRこんにちは、ありがとう!今はうまくいきます。 –