EXC_BAD_ACCESS 和 MPMusicPlayerController
EXC_BAD_ACCESS and MPMusicPlayerController
我写了一个我有一段时间没有开发的应用程序。它在 Xcode 7.3.1 中启动,但在 Xcode 8.3.3 中运行良好。当我尝试在 iPhone 8 和 iOS 11.4.1 上 运行 时,我得到 EXC_BAD_ACCESS(我希望我从未更新 iOS,但是现在我卡住了)。但是该应用程序在我的旧 iPhone 5 和 iOS 10.3.3.
上仍然 运行 没问题
我的 Mac 运行s Sierra 有 Xcode 8.3.3 和 9.2。我确实将适当的支持文件复制到每个 Xcode 应用程序的正确文件夹中(这是我在本网站上学到的)。这个技巧奏效了一段时间!
我决定在 Xcode 9.2 下构建一个小 "Hello World" 应用程序只是为了简化事情。如果我删除下面的 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"
}
}
我试图 运行 你的代码,不幸的是我在 Xcode 10.1 但我在 MPMusicPlayerController
的初始化中遇到编译错误并显示以下错误:
从 Apple's Documentation of the MPMusicPlayerController class 您可以尝试使用
进行初始化
MPMusicPlayerController.systemMusicPlayer
或 MPMusicPlayerController.applicationMusicPlayer
取决于您的用例。我已经在 11.4.1 上尝试过这个和 运行 并且没有 运行 发生任何崩溃。
我写了一个我有一段时间没有开发的应用程序。它在 Xcode 7.3.1 中启动,但在 Xcode 8.3.3 中运行良好。当我尝试在 iPhone 8 和 iOS 11.4.1 上 运行 时,我得到 EXC_BAD_ACCESS(我希望我从未更新 iOS,但是现在我卡住了)。但是该应用程序在我的旧 iPhone 5 和 iOS 10.3.3.
上仍然 运行 没问题我的 Mac 运行s Sierra 有 Xcode 8.3.3 和 9.2。我确实将适当的支持文件复制到每个 Xcode 应用程序的正确文件夹中(这是我在本网站上学到的)。这个技巧奏效了一段时间!
我决定在 Xcode 9.2 下构建一个小 "Hello World" 应用程序只是为了简化事情。如果我删除下面的 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"
}
}
我试图 运行 你的代码,不幸的是我在 Xcode 10.1 但我在 MPMusicPlayerController
的初始化中遇到编译错误并显示以下错误:
从 Apple's Documentation of the MPMusicPlayerController class 您可以尝试使用
进行初始化
MPMusicPlayerController.systemMusicPlayer
或 MPMusicPlayerController.applicationMusicPlayer
取决于您的用例。我已经在 11.4.1 上尝试过这个和 运行 并且没有 运行 发生任何崩溃。