线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x20)当subView时

时间:2018-06-03 09:56:25

标签: ios swift uiview exc-bad-access quickblox

我遇到了一个奇怪的错误。 Thread 1: EXC_BAD_ACCESS (code=1, address=0x20) 当另一个视图上的View子视图时。

v iew object not nil.

如何解决此问题。

修改 我正在使用VOIP实现视频聊天代码。

来电时和接听电话后。我需要显示一个屏幕。 此屏幕显示正常和其他UIElements按钮等..(包括按钮功能)一切正常,因为音频呼叫。

但是,在收到远程用户视频后的视频通话中,我正在尝试将subView视图。我可以查看远程用户屏幕一秒钟。突然崩溃(线程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函数是远程视频的委托方法。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

请注意Metal仅适用于A7个处理器或更高版本。我建议你强制OpenGLES图纸而不是Metal,现在,只需这样做:

QBRTCRemoteVideoView.preferMetal = NO