我的应用适用于iOS 11.3但不适用于11.4。它部分但不完全呈现。 我查看了我的代码,找不到任何特定的问题。 我只有以下日志行:
2018-06-13 21:34:40.637820-0400 XXXXXXXX[5108:1788561] [Render] CoreAnimation: data provider size is too small
我不会在我的应用程序或任何依赖库中记录它。这些日志lins仅出现在iOS 11.4中。
答案 0 :(得分:0)
这是我如何呼叫CGImageCreate
的问题,我的旧代码看起来像这样:
CGImageRef shapeRef = nil;
ShapeSurface* s; //init happens elsewhere in C++ code
CGDataProviderRef dataRef = CGDataProviderCreateWithData(s, s->pBitmap,
s->width * s->height * 4,
ReleaseCGShapeCallback);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
shapeRef = CGImageCreate(s->width,
s->height,
8, // bits per component (byte)
4 * 8, // bits per pixel (4 bytes per pixel, 8 bits per pyte)
s->width, // bytes per row
colorSpace, // image color space
kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst,
// surfaces are argb little-endian
dataRef, // data provider for the raw image
NULL, // no decoder
false, // no interpolation
kCGRenderingIntentDefault);
CGColorSpaceRelease(colorSpace);
CGDataProviderRelease(dataRef);
此行已更改:
s->width * 4, // bytes per row
现在每行字节计算正确。我不知道为什么以前的iOS版本可以正常运行,而现在突然停止。