Проблема общего объекта NSThread - PullRequest
1 голос
/ 31 марта 2010

Я получаю «EXC_BAD_ACCESS», но просто не могу понять, почему любая помощь будет огромной - заранее спасибо.

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

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{

...

NSString *uid = [Asset stringWithUUID];

[_imageQueue setObject:img forKey:uid];

[NSThread detachNewThreadSelector:@selector(createAssetAsyncWithImage:) 
                toTarget:self 
              withObject:uid];
}

Тогда новая тема

-(void) createAssetAsyncWithImage:(NSString *)uid {

 NSAutoreleasePool * pool =[[NSAutoreleasePool alloc] init];

 if ([_imageQueue objectForKey:uid]) {
 Asset *asset = [Asset createAssetWithImage:[_imageQueue objectForKey:uid]];

 asset.uid = uid;

 [self performSelectorOnMainThread:@selector(asyncAssetCreated:)
         withObject:asset 
      waitUntilDone:YES];

 }

 [pool release];
}

Какие звонки

    +(Asset *)createAssetWithImage:(UIImage *)img
    { 
   ....

     UIImage *masterImg = [GraphicSupport createThumbnailFromImage:img pixels:img.size.height/2];
    ....

     return newAsset;
    }

И тогда я продолжаю получать BAD_ACCESS

+(UIImage *)createThumbnailFromImage:(UIImage *)inImage pixels:(float)pixels{

 CGSize size = image.size;
 CGFloat ratio = 0;

 if (size.width > size.height) {

  ratio = pixels / size.width;
 }
 else {
  ratio = pixels / size.height;
 }

 CGRect rect = CGRectMake(0.0, 0.0, ratio * size.width, ratio * size.height);

 UIGraphicsBeginImageContext(rect.size);

 //NSAssert(image,@"image NULL");

 [image drawInRect:rect];

 return UIGraphicsGetImageFromCurrentImageContext(); 
}

Это изображение вызывает у меня все жалобы ...

Что я делаю не так ??

Большое спасибо заранее

1 Ответ

0 голосов
/ 01 апреля 2010

Я обнаружил, что UIGraphicsBeginImageContext не является многопоточным, и ему пришлось прибегнуть к потрясающим расширениям Trevors для UIImage.

http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/

...