Ошибка EXC_BAD_ACCESS в Xcode - PullRequest
       24

Ошибка EXC_BAD_ACCESS в Xcode

2 голосов
/ 13 сентября 2011

Мне очень нужен парень, ПОМОГИТЕ, я запускаю свою программу на XCode и она прошла успешно, но позже,

Покажите мне эту ошибку: ** Поток 1: Программа получила сигнал: "EXC_BAD_ACCESS" в строке моей программы, что у меня есть ** жирным шрифтом ниже :

- (NSString *) ocrImage: (UIImage *) uiImage
{
    CGSize imageSize = [uiImage size];
    double bytes_per_line   = CGImageGetBytesPerRow([uiImage CGImage]);
    double bytes_per_pixel  = CGImageGetBitsPerPixel([uiImage CGImage]) / 8.0;

    CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider([uiImage CGImage]));
    const UInt8 *imageData = CFDataGetBytePtr(data);

    // this could take a while. maybe needs to happen asynchronously.

    **char* text = tess->TesseractRect(imageData,(int)bytes_per_pixel,(int)bytes_per_line, 0, 0,(int) imageSize.height,(int) imageSize.width);**

    // Do something useful with the text!
    NSLog(@"Converted text: %@",[NSString stringWithCString:text encoding:NSUTF8StringEncoding]);

    return [NSString stringWithCString:text encoding:NSUTF8StringEncoding];
}

Спасибо, парень.

Ответы [ 2 ]

0 голосов
/ 14 августа 2014
- (NSString *)readAndProcessImage:(UIImage *)uiImage
{
  CGSize imageSize = [uiImage size];
  int bytes_per_line = (int)CGImageGetBytesPerRow([uiImage CGImage]);
  int bytes_per_pixel = (int)CGImageGetBitsPerPixel([uiImage CGImage]) / 8.0;

  CFDataRef data =
      CGDataProviderCopyData(CGImageGetDataProvider([uiImage CGImage]));
  const UInt8 *imageData = CFDataGetBytePtr(data);

  // this could take a while. maybe needs to happen asynchronously?
  char *text = tess.TesseractRect(imageData, bytes_per_pixel, bytes_per_line, 0,
                                  0, imageSize.width, imageSize.height);

  NSString *textStr = [NSString stringWithUTF8String:text];

  delete[] text;
  CFRelease(data);
  return textStr;
}
0 голосов
/ 13 сентября 2011

убедитесь, что imageData здесь не равно NULL. Это самая распространенная причина того, что вы видите. Вы должны пересмотреть свой заголовок на что-то более связанное с вашей проблемой, и сосредоточиться на трассировке стека и всех переменных, которые вы передаете TesseractRect().

Другая важная вероятность состоит в том, что tess (что бы это ни было) является плохим указателем или не является частью правильного класса C ++ (я предполагаю, что это Objective-C ++; вы не знаете, что из этого) ).

...