gpt4 book ai didi

ios - EXC_BAD_ACCESS 在 iOS 6 上,但在更改 CFDataRef 的字节时不是 5

转载 作者:可可西里 更新时间:2023-11-01 05:37:42 24 4
gpt4 key购买 nike

我有一个应用程序可以将各种滤镜应用于图像。它在 iOS 5 上运行良好,但在 6 上崩溃。下面是崩溃位置的示例:

CGImageRef inImage = self.CGImage;
CFDataRef m_DataRef = CGDataProviderCopyData(CGImageGetDataProvider(inImage));
UInt8 * m_PixelBuf = (UInt8 *) CFDataGetBytePtr(m_DataRef);

int length = CFDataGetLength(m_DataRef);

for (int i=0; i<length; i+=4)
{
if(filter == filterCurve){

int r = i;
int g = i+1;
int b = i+2;

int red = m_PixelBuf[r];
int green = m_PixelBuf[g];
int blue = m_PixelBuf[b];

m_PixelBuf[r] = SAFECOLOR(red); // <==== EXC_BAD_ACCESS (code = 2)
m_PixelBuf[g] = SAFECOLOR(green);
m_PixelBuf[b] = SAFECOLOR(blue);
}
}

当我尝试将一个值赋回给 m_PixelBuf 时,请注意错误的访问点。有人知道为什么会这样吗? iOS 6 中的什么会导致这种情况?

最佳答案

这解决了问题:http://www.iphonedevsdk.com/forum/iphone-sdk-development/108072-exc_bad_access-in-ios-6-but-not-in-ios-5.html

在 iOS 6 中,您需要使用 CFDataCreateMutableCopy()(而不是 CGDataProviderCopyData()),然后是 CFDataGetMutableBytePtr()(而不是CFDataGetBytePtr()) 如果您要直接操作数据的字节。

关于ios - EXC_BAD_ACCESS 在 iOS 6 上,但在更改 CFDataRef 的字节时不是 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12515469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com