Приложение просто вылетает при смене станции? - Ошибка AppDelegate - PullRequest
0 голосов
/ 14 июля 2020

Итак, я получаю следующий код ошибки

Thread 1: Exception: "-[__NSCFTimer copyWithZone:]: unrecognized selector sent to instance 0x281e8a1c0"

Однако я не знаю, что было отправлено в какой экземпляр, ошибка выделена в этой строке

class AppDelegate: UIResponder, UIApplicationDelegate {

Единственная команда I run выглядит следующим образом:

@objc func playdrn1(sender:UIButton!){
        MusicPlayer.shared.startBackgroundMusic(url: "http://stream.radiomedia.com.au:8006/stream?uuid=\(uuid ?? "")")
        nowplaying(npurl:"https://api.drn1.com.au/station/DRN1/playing")
    }

Я сузил ошибку до функции nowplaying.

кажется, не нравится сам факт зацикливания или что-то в этом роде

   func scheduledTimerWithTimeInterval(){
        // Scheduling timer to Call the function "updateCounting" with the interval of 1 seconds
        timer = Timer.scheduledTimer(timeInterval: 30, target: self, selector: #selector(self.nowplaying), userInfo: nil, repeats: true)
    }

Проблема в том, что я не отправляю информацию npurl с помощью self.nowplaying.

#selector(self.nowplaying)

Как я могу запустить @objc func nowplaying(npurl:String){ без повторной отправки npurl?

1 Ответ

1 голос
/ 14 июля 2020

Подпись @objc func nowplaying(npurl:String) { неверна. Вы не можете передать тип специального параметра

Метод действия таймера может иметь две формы:

@objc func nowplaying() { ...

и

@objc func nowplaying(_ timer : Timer) { ...

. Либо передать строку в словаре userInfo. или создайте временную собственность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...