我在创建CGBitmapContext时遇到问题。
CGContextRef bitmapContext = CGBitmapContextCreate(nil, imageSize.width, imageSize.height, 8, imageSize.width * 4, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst)
当我正常运行我的应用程序时,它可以工作。但是当我在我的'测试应用程序'(一个正在执行我的测试的正在运行的应用程序)中运行它时,上下文被记录为(null)并且我得到以下错误:
<Error>: CGContextSetFillColorWithColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextDrawImage: invalid context 0x0
<Error>: CGContextDrawImage: invalid context 0x0
<Error>: CGBitmapContextCreateImage: invalid context 0x0
我的应用程序没有崩溃。但显然有些不对劲。 (我知道错误是通过使用nil上下文调用这些方法创建的。)
答案 0 :(得分:7)
当您尝试创建的位图大小为CGSizeZero时,通常会出现此错误。检查imageSize的实际值。
此外,你泄漏了传递给函数的CGColorSpaceRef。
答案 1 :(得分:0)
您是否检查CGBitmapContextCreate返回值是否为非零?如果设备上没有足够的可用内存来创建上下文,您将获得零值。
您在应用中使用了多少内存以及您要求的位图大小?