
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()).
总结以上是内存溢出为你收集整理的在更改CFDataRef的字节时,iOS 6上的EXC_BAD_ACCESS,但不是5全部内容,希望文章能够帮你解决在更改CFDataRef的字节时,iOS 6上的EXC_BAD_ACCESS,但不是5所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)