拜读了《iOS 7Progaramming Pushing the Limits》( 中文版挫名《iOS编程实战》),受益匪浅。
结合自己的踩坑经历,分享下Quartz(Core Graphics)框架里的绘图上下文,CGContextRef。
OK,我们常用UIGraphicsGetCurrentContext();去获取上下文,这是一个线程不安全的方法,但当踩坑之前,我是不知道的,相信也有很多人也像我一样(当然UI开头的一般都要在主线程中执行)。
好,我的坑是这样的,我在另一个线程里,获取了上下文并开始绘图,blabla...,它有时会如期运行,有时不会,好了,这明显线程问题,解决方法是这样的。
UIGraphicsGetCurrentContext()获取的是当前上下文,如果有两个或两个以上(其中一个可能是主线

在多线程环境中,使用UIGraphicsGetCurrentContext()可能会导致线程问题。为了解决这个问题,可以采用线程安全的CGBitmapContextCreate方法创建上下文并在完成后释放。由于CGBitmapContextCreate的复杂性,可以封装方法简化操作。同时,为了从自定义上下文中获取UIImage,也需要进行相应的封装处理。
最低0.47元/天 解锁文章
7347

被折叠的 条评论
为什么被折叠?



