目前遇到的一些问题
为啥EAGLContext要setCurrentContext:nil
在iOS的OpenGL中,释放资源时我们最后一般会在最末调用setCurrentContext:nil,否则再一次使用时会产生crash。原因:苹果内部将维持了context,外部退出时,这个context可能就会失效,如果再次进入且被访问,就会crash。
deleteDraw的坑
当使用完OpenGL的时候,我们一般会调用deleteDraw销毁OpenGL的一些数据。但是,在此方法中会调用setCurrentContext:context,将当前的context设置进去。所以一定要保证setCurrentContext:nil在最后调用,不然可能依然会出现crash。
关于二维码扫描
在改变metadataObjectTypes的时候一定要先设置addOutput,不然可能会出现意外的崩溃。
AVAudioSessionThread Notify Thread Crash
notify线程崩溃大多是外部去改变了sesison的属性导致的,因为AVAudio内部采用mrc,外部属性改变可能使内部变量意外release。大多是多线程引起的,尽可能的将属性的set与访问在这个通知线程中去做。[AVAudio sharedInstance] currentRout..]此方法可能导致session属性改变,故而尽量不要同时监听route时也去调用这个方法。