(iphone)如何从后台线程中创建的imageRef创建UIImage?

时间:2011-04-22 09:30:42

标签: iphone background uiimage

UIImage * img = [UIImage imageWithCGImage:imageRef];
可以在主线程中完成.. bah ..

现在我的所有图像创建要在后台线程中运行的函数都必须修改 问题是我应该如何改变上面这一行。

创建图像的常用步骤如下。

CGImageRef imageRef = CGBitmapContextCreateImage(context);
UIImage* img = [UIImage imageWithCGImage: imageRef];
CGImageRelease(imageRef);

CGContextRelease(context);

return img;

如果performSelector返回一个值,那就相当容易了 但事实并非如此。由于这似乎是相当普遍的要求,我想知道是否有更好的做法。

谢谢

1 个答案:

答案 0 :(得分:4)

  

UIImage * img = [UIImage imageWithCGImage:imageRef];   可以在主线程中完成.. bah ..

仅当您要定位iOS 3.x设备时。从iOS 4开始,UIImage变得线程安全。如果你需要在iOS 3上运行,典型的行为是将CGImageRef传递回主线程,并在那里运行imageWithCGImage方法。