线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x8000000000000010)

问题描述 投票:-4回答:2

我有一个应用程序,其中包含视频和图像的集合视图。当您点击其中一个时,您将转到全屏以查看媒体。当我点击图像时,它可以根据需要工作。但是,当我运行我的应用程序并点击其中一个视频时,我会收到以下错误:

线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x8000000000000010)

我在这里得到这个:

class AppDelegate: UIResponder, UIApplicationDelegate {

这可能是由于记忆问题吗?

发生了什么,我该如何解决这个问题?

我看了here但无法解决它。

我发现在调用波纹管功能时实际发生了故障。

func getAndShowMedia(post: Post) {
    if post.media[numberMedia].image != nil {//here is still works, I am assuming this line is the line which actualy fails
        print("imageooooo")//When setting break point here it will crash
        mediaView.image = nil
        mediaView.image = (post.media[numberMedia].image)!
    } else {
        mediaView.layer.removeFromSuperlayer()
        let videoURL = post.media[numberMedia].videoURL
        let player = AVPlayer(url: videoURL! as URL)
        let playerLayer = AVPlayerLayer(player: player)
        print("videooooooo")
        playerLayer.frame = mediaView.bounds
        mediaView.layer.addSublayer(playerLayer)
        player.play()
    }
}

这里:

func loadOtherData() {        
    getAndShowMedia(post: selectedPost!)
}
ios swift
2个回答
1
投票

请检查您的代码并告诉我崩溃的位置。

我读了你的代码,并假设发生崩溃,我写下点并检查调试模式。

  1. post.media[numberMedia].image你检查不是零请在那里使用if let声明。
  2. qazxsw poi进入你的模型qazxsw poi对象,将发生崩溃。
  3. post.media[numberMedia].videoURL我不明白这个代码你有URL层但你添加子层mediaView.layer.removeFromSuperlayer()然后删除子层。检查您的子图层是否可用然后删除子图层,而不是删除remove图层。

使用此代码删除图层。

mediaView.layer.addSublayer(playerLayer)

我希望这段代码能够正常运行。


-1
投票

从Xcode的Breakpoint菜单中,按左下角的“+”按钮,然后添加一个异常断点。这将显示您的应用程序崩溃的确切位置,您将能够正确调试它。

你有几个强迫解缠可能是零,你应该避免。

© www.soinside.com 2019 - 2024. All rights reserved.