线程1:EXC_BAD_ACCESS(码= 1,地址为0x20 =)当子视图(Thread 1: E

2019-09-27 11:35发布

我有一个奇怪的错误。 Thread 1: EXC_BAD_ACCESS (code=1, address=0x20)当在另一视图中查看子视图。

这两个v iew object not nil.

我该如何解决这个问题。

编辑:我实现视频聊天代码VOIP。

当来电来了,接受呼叫后。 我需要显示的屏幕。 该屏幕显示精细和其他UI元素按钮等(包括功能键),一切工作如预期的音频呼叫。

但是,在视频通话后收到我试图子视图视图中的远程用户的视频。 我可以查看远程用户屏幕一秒钟。 突然得到坠毁(线程1:EXC_BAD_ACCESS(代码= 1,地址为0x20 =))。

func session(_ session: QBRTCBaseSession, receivedRemoteVideoTrack videoTrack: QBRTCVideoTrack, fromUser userID: NSNumber) {

  if (session as! QBRTCSession).id == self.session?.id {

      let remoteView :QBRTCRemoteVideoView = QBRTCRemoteVideoView()
      remoteView.videoGravity = AVLayerVideoGravity.resizeAspect.rawValue
      remoteView.clipsToBounds = true
      remoteView.setVideoTrack(videoTrack)
      remoteView.tag = userID.intValue

      var frame = self.mainVideoView.bounds
      frame.origin.y = 0
      remoteView.frame = frame

      self.view.addSubview(remoteView)
     }
}

其中receivedRemoteVideoTrack功能是远程视频的委托方法。

Answer 1:

请记住, Metal仅适用于A7处理器或更高。 我可以建议你强制OpenGLES图纸,而不是Metal ,现在,只是这样做:

QBRTCRemoteVideoView.preferMetal = NO


文章来源: Thread 1: EXC_BAD_ACCESS (code=1, address=0x20) When subView