iPhone: UIImagePickerController Проблема сортов - PullRequest
0 голосов
/ 06 августа 2009

Здравствуйте, замечательные люди из stackoverflow!

У меня проблема.

Я работаю над приложением, которое будет делать несколько фотографий, и каждый раз оно будет увеличивать их, показывать предварительный просмотр, сохранять их и затем снова загружать UIImagePickerController.

Но, сделав примерно 5-6 снимков, он умирает.

Я думаю, что он умирает, потому что у меня есть UIImageView, который я установил, и после стольких картинок UIImage, с которым я его установил, больше не ссылается ни на что.

Я думаю, что преступник где-то здесь ...

Есть ли что-то, что я делаю неправильно?

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

    [backgroundImage setImage: [[UIImage alloc] initWithCGImage:[[info objectForKey:UIImagePickerControllerOriginalImage] CGImage]]];
    [backgroundImage setTransform:CGAffineTransformRotate(CGAffineTransformMakeScale(zoom/3, zoom/3), 1.570796327)];

    UIGraphicsBeginImageContext([backgroundView bounds].size);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextFillRect(ctx, [backgroundView bounds]);
    [backgroundView.layer renderInContext:ctx];
    UIImage* screenImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    UIImageWriteToSavedPhotosAlbum(screenImage, self, @selector(ImageDidSave:didFinishSavingWithError:contextInfo:), nil);

    [self dismissModalViewControllerAnimated:YES];
}

backgroundImage - это тот, который в конечном итоге пытается использовать изображение, на которое больше ничего не ссылается.

Дайте мне знать, как я могу уточнить.

Большое спасибо всем, кто остался со мной так далеко!

1 Ответ

1 голос
/ 06 августа 2009

Это предположение, но держу пари, что у вас не хватает памяти и вас убивают. Попробуйте автоматически высвободить изображение, которое вы отправляете фону в этой строке:

[backgroundImage setImage: [[[UIImage alloc] initWithCGImage:[[info objectForKey:UIImagePickerControllerOriginalImage] CGImage]] autorelease]];
...