EXC_BAD_ACCESS и MPMusicPlayerController - PullRequest
       8

EXC_BAD_ACCESS и MPMusicPlayerController

0 голосов
/ 08 ноября 2018

Я написал приложение, над которым не работал некоторое время. Это началось в Xcode 7.3.1, но отлично работало в Xcode 8.3.3. Я получаю EXC_BAD_ACCESS, когда пытаюсь запустить его на iPhone 8 с iOS 11.4.1 (хотелось бы, чтобы я никогда не обновлял iOS, но теперь я застрял). Но приложение все еще отлично работает на моем старом iPhone 5 с iOS 10.3.3.

Мой Mac работает с Sierra и имеет Xcode 8.3.3 и 9.2. Я скопировал соответствующие файлы поддержки в правильную папку в каждом приложении Xcode (кое-что я узнал на этом сайте). Этот трюк работал некоторое время!

Я решил создать небольшое приложение "Hello World" под Xcode 9.2 просто для упрощения вещей. Если я удалю MPMusicPlayerController () ниже, приложение будет установлено и работает нормально. Но с этим кодом происходит сбой на self.myMPMusicPlayerController.playbackState == .stopped.

Кто-нибудь может предложить что-нибудь? Большое спасибо заранее.

import UIKit
import MediaPlayer

class ViewController: UIViewController {

@IBOutlet var myLabel: UILabel!
@IBOutlet var nowPlaying: UIButton!

var myMPMusicPlayerController = MPMusicPlayerController()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    // The following is a tiny bit of an app
    // My mac is running Sierra so it can only take Xcode 8.3.3 or 9.2
    // I will be updating my mac at least to High Sierra soon, so it will be able to take Xcode 9.4.1
    // I have copied in the appropriate support file folders accordingly. So I have the 11.4 (15F79) folder in place

    // The following line, worked fine using Xcode 8.3.3 and an iPhone8 running 11.2 and an iPhone5 running 10.3.3
    // The following line, crashes on an iPhone8 running 11.4.1 but RUNS FINE on the iPhone5 running 10.3.3

    // I'm getting the error: Thread 1: EXC_BAD_ACCESS (code=1, address=0x70)
    if self.myMPMusicPlayerController.playbackState == .stopped {

        // Hide the nowPlaying button.
        nowPlaying.isHidden = true
    } else {

        // Show the nowPlaying button.
        nowPlaying.isHidden = false
    }

}

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

// I added this just for a simple test
@IBAction func nowPlayingButton(_ sender: Any) {
    self.myLabel.text = "Hello"
}

}

1 Ответ

0 голосов
/ 09 ноября 2018

Я попытался запустить ваш код, к сожалению, я нахожусь на Xcode 10.1, но у меня возникает ошибка компиляции при инициализации MPMusicPlayerController, и отображается следующая ошибка: enter image description here

Из Документация Apple по классу MPMusicPlayerController , которую вы можете попробовать инициализировать с помощью
MPMusicPlayerController.systemMusicPlayer или MPMusicPlayerController.applicationMusicPlayer в зависимости от вашего варианта использования. Я попробовал это и побежал на 11.4.1 и не столкнулся с какими-либо сбоями.

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