我有一个应用程序,其中包含视频和图像的集合视图。当您点击其中一个时,您将转到全屏以查看媒体。当我点击图像时,它可以根据需要工作。但是,当我运行我的应用程序并点击其中一个视频时,我会收到以下错误:
线程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!)
}
请检查您的代码并告诉我崩溃的位置。
我读了你的代码,并假设发生崩溃,我写下点并检查调试模式。
post.media[numberMedia].image
你检查不是零请在那里使用if let
声明。post.media[numberMedia].videoURL
我不明白这个代码你有URL
层但你添加子层mediaView.layer.removeFromSuperlayer()
然后删除子层。检查您的子图层是否可用然后删除子图层,而不是删除remove
图层。使用此代码删除图层。
mediaView.layer.addSublayer(playerLayer)
我希望这段代码能够正常运行。
从Xcode的Breakpoint菜单中,按左下角的“+”按钮,然后添加一个异常断点。这将显示您的应用程序崩溃的确切位置,您将能够正确调试它。
你有几个强迫解缠可能是零,你应该避免。