Ios 音频节点敲击麦克风,仅当内部有self.function时才会重复调用

Ios 音频节点敲击麦克风,仅当内部有self.function时才会重复调用,ios,swift,avaudioengine,Ios,Swift,Avaudioengine,我正在创建一个FFT频谱显示,它一遍又一遍地打印信号[100],但是这只有在调用闭包外的函数时才有效。为什么会这样 func beginTappingMicrophone() { let inputNode = engine.inputNode let inputFormat = inputNode.outputFormat(forBus: 0) let bufferSize = 4096 inputNode.installTap(onBus: 0, buffe

我正在创建一个FFT频谱显示,它一遍又一遍地打印
信号[100]
,但是这只有在调用闭包外的函数时才有效。为什么会这样

func beginTappingMicrophone() {
    let inputNode = engine.inputNode
    let inputFormat = inputNode.outputFormat(forBus: 0)
    let bufferSize = 4096

    inputNode.installTap(onBus: 0, bufferSize: AVAudioFrameCount(bufferSize), format: inputFormat) { (buffer, time) in
        let fft = PowerSpectrum.powerSpectrum(channelDataValueArray)

        self.emptyFunction()
        print(signal[100])
    }
}