2009-12-23 3 views
1

Я разрабатываю приложение для обработки изображений путем преобразования изображения в растровое изображение. Я манипулирую битами в растровом изображении, чтобы получить желаемый эффект. Первый раз я обработать изображение он дает правильный результат на второй попробовать дает EXC_BAD_ACCESSСтранная проблема с UInt8 в iPhone (EXC_BAD_ACCESS)

отладчик показывает:

dataref outofscope 

Мой код

CGImageRef img=previewImageView.image.CGImage; 
NSLog(@" Image : %@ ", previewImageView); 
CFDataRef dataref=CopyImagePixels(img); 
CFDataRef dataref1=CopyImagePixels(img); 
//UInt8 *data=(UInt8 *)CFDataGetBytePtr(dataref); 
//UInt8 *original=(UInt8 *)CFDataGetBytePtr(dataref1); 

UInt8 *data=nil; 
data=(UInt8 *)CFDataGetBytePtr(dataref); 
UInt8 *original=nil; 
original=(UInt8 *)CFDataGetBytePtr(dataref1); 
//original=data; 
int length=CFDataGetLength(dataref); 

Пожалуйста, помогите ... ......

+0

Привет, добро пожаловать в StackOverflow! В следующий раз взгляните на свой пост-превью перед публикацией, чтобы посмотреть, как он будет выглядеть;) –

+0

Или вы могли бы подождать, когда какая-то душа исправит его для вас :-) – paxdiablo

+0

В какой строке отключается отладчик? Пройдите через строку кода, пока она не сработает. Нам нужно знать эту линию, прежде чем мы сможем полностью помочь. – TechZen

ответ

1

Основной причиной EXEC_BAD_ACCESS является попытка доступа к объектам выпуска.

Чтобы узнать, как устранить это, читать этот документ: DebuggingAutoReleasePool

Даже если вы не думаете, что вы «выпускать авто выпустили объекты», это будет относиться к вам.

Этот метод работает очень хорошо.

Вкратце, это объясняет, как использовать класс отладки NSZombie Cocoa и средство командной строки «malloc_history» для определения того, к какому выпущенному объекту был обращен в вашем коде.

Полезно установить точку останова на objc_exception_throw. Таким образом, отладчик должен сломаться, когда вы получите EXC_BAD_ACCESS.

Инструкции можно найти здесь http://www.cocoadev.com/index.pl?DebuggingTechniques

Смежные вопросы