升级到Xcode 7后,在操作期间渲染图像时出现以下警告信息:
CreateWrappedSurface()无法为dataprovider-backed CGImageRef创建表面。
Xcode 6.4下没有这样的消息。
找到抛出该消息的代码部分:
if (!self.originalImage) // @property (nonatomic, strong) UIImage *originalImage;
return;
CGImageRef originalCGImage = self.originalImage.CGImage;
NSAssert(originalCGImage, @"Cannot get CGImage from original image");
CIImage *inputCoreImage = [CIImage imageWithCGImage:originalCGImage]; // this results the console message
我替换了我的CIIImage创建器,直接从UIImage中获取:
CIImage *originalCIImage = self.originalImage.CIImage;
NSAssert(originalCIImage, @"Cannot build CIImage from original image");
在这种情况下,我没有收到任何控制台消息,但是有一个断言:originalCIImage为nil。
UIImage类的参考资料说:
@property(nonatomic, readonly) CIImage *CIImage 如果使用CGImageRef初始化UIImage对象,则属性的值为nil。
因此,我将原始代码用作后备方案:
CIImage *originalCIImage = self.originalImage.CIImage;
if (!originalCIImage) {
CGImageRef originalCGImageRef = self.originalImage.CGImage;
NSAssert(originalCGImageRef, @"Unable to get CGimageRef of originalImage");
originalCIImage = [CIImage imageWithCGImage:originalCGImageRef];
}
NSAssert(originalCIImage, @"Cannot build CIImage from original image");
问题是,我在控制台仍然收到警告信息。
有人遇到过这个消息吗?如何消除这个警告信息?
谢谢, Adam