обратный вызов для AKButton в Audiokit

Я пытаюсь понять, как прикрепить обратные вызовы к кнопкам на AudioKit, следуя инструкциям на Audiokit Docs мой код:

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.
    }
}

Но у меня плохой доступ. Есть намеки на то, что я делаю не так?


person Juan Chô    schedule 24.03.2018    source источник
comment
С первого взгляда выглядит нормально, можете ли вы поделиться проектом? Правильно ли подключена розетка?   -  person Aurelius Prochazka    schedule 25.03.2018
comment
Привет, Аврелий! Да, я подозреваю, что с крючком что-то не так. Я только что создал кнопку, используя интерфейс, на самом деле UIButton, но я вижу, что AKButton происходит от UIView, и я не знаю, как использовать, я новичок в swift / iOS, извините. Я разместил код на github: github.com/juan-barragan/mixer.   -  person Juan Chô    schedule 25.03.2018


Ответы (1)


Мне удалось заставить твою кнопку заработать. В вашей раскадровке был UIButton, но я создал общий UIView, изменил класс на «AKButton» из модуля «AudioKitUI», а затем подключил его к вашему объявлению «tam», и при щелчке он запускает обратный вызов, без ошибок.

person Aurelius Prochazka    schedule 26.03.2018
comment
Спасибо, Aurelius, я сделал это: создав UIView, я подключил его с помощью IBOutlet и изменил тип на AKButton! он компилируется нормально, но все еще плохой доступ. - person Juan Chô; 26.03.2018
comment
Это просто новичок в Xcode, ничего больше, кроме как биться головой об стену, пока не получится. Я буквально открыл ваш проект, внес эти изменения (удалил недостающую ссылку на Conductor), и он запустился и не вылетел. - person Aurelius Prochazka; 27.03.2018