我正在创建小磁贴图像以存储在磁盘上并显示给用户。以下是我目前执行此操作的过程:
当我尝试访问viewcontroller的视图时,我崩溃了。当我尝试在线研究时,我在后台创建视图是否安全时遇到了相互矛盾的结果。我正在读UIGraphicsGetCurrentContext调用应该是线程安全的,但也许不能在后台线程上访问UIView?我正在为iOS 4及更高版本编写应用程序。这是我正在使用的代码(tile是viewcontroller):
CGSize size = CGSizeMake(20.0f, 30.0f);
UIGraphicsBeginImageContext(size);
[tile.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
尝试访问磁贴上的.view属性时发生崩溃(EXC_BAD_ACCESS)。重点是在后台渲染视图以防止锁定UI,因为有很多要处理的切片。
有安全的方法吗?
答案 0 :(得分:2)
我从未尝试过你所描述的内容,我不喜欢成为坏消息的承载者,而是取自Apple's documentation。
注意:在大多数情况下,UIKit类 应该只用于 应用程序的主要线程。这是 对于派生的类尤其如此 来自UIResponder或涉及 操纵应用程序的用户 以任何方式接口。
当然,他们很方便地说“大部分时间”,这样就留下了一些摆动的空间。