Swift Audiokit中AKButton的回调

Swift Audiokit中AKButton的回调,swift,callback,audiokit,Swift,Callback,Audiokit,我试图了解如何按照代码中的说明将回调附加到AudioKit上的按钮: 但我接触不好。有没有关于我做错了什么的提示?我能让你的按钮正常工作。您的故事板中有一个UIButton,但我创建了一个通用UIView,将类从模块“AudioKitUI”更改为“AKButton”,然后将其连接到您的“tam”声明,然后单击它运行回调,没有错误。看起来很好,您可以共享该项目吗?插座连接好了吗?你好,奥雷利乌斯!是的,我怀疑钩子有问题。我刚刚用界面创建了一个按钮,实际上是一个UIButton,但我看到AKButt

我试图了解如何按照代码中的说明将回调附加到AudioKit上的按钮:


但我接触不好。有没有关于我做错了什么的提示?

我能让你的按钮正常工作。您的故事板中有一个UIButton,但我创建了一个通用UIView,将类从模块“AudioKitUI”更改为“AKButton”,然后将其连接到您的“tam”声明,然后单击它运行回调,没有错误。

看起来很好,您可以共享该项目吗?插座连接好了吗?你好,奥雷利乌斯!是的,我怀疑钩子有问题。我刚刚用界面创建了一个按钮,实际上是一个UIButton,但我看到AKButton源于UIView,我不知道如何使用,我是swift/iOS上的新手,对不起。我将代码放在github上:。感谢Aurelius,我做到了:创建UIView,我使用IBOutlet钩住它,并将类型更改为AKButton!这只是一个Xcode新手,仅仅是把头撞到墙上,直到你做对为止。我真的打开了你的项目,做了那些更改(删除了一个丢失的导体引用),它运行了,没有崩溃。
import UIKit
import AudioKit
import AudioKitUI

class ViewController: UIViewController {
    let sounds = AKSampler()
    @IBOutlet weak var tam: AKButton!
    override func viewDidLoad() {
        do {
            let hiTomFile = try AKAudioFile(readFileName: "hi_tom_D2.wav")
            try sounds.loadAudioFiles([hiTomFile])
            AudioKit.output = sounds
        } catch {
            print ("error reading file")
        }
        do {
            try AudioKit.start()
        } catch {
            AKLog("AudioKit did not start!")
        }
        // Bad access here!
        tam.callback = { button in self.sounds.play() }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}