tidak dapat menyimpan UIImage dari perpustakaan foto iphone

Saya mencoba menyimpan gambar dengan mengambilnya dari perpustakaan foto iPhone. Tapi saya tidak bisa menyimpannya. Objek UIImage saya tiba-tiba terlepas. Saya mendapatkan kesalahan berikut: * -[Rilis UIImage]: pesan dikirim ke instance yang tidak dialokasikan 0x83fa5b0

Silakan periksa kode saya di bawah ini:

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

    NSLog(@"finish picking media");

    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
    if ([mediaType isEqualToString:@"public.image"]){

        UIImage *selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage];
        NSLog(@"found an image");

        selectedImage=[self scaleAndRotateImage:selectedImage];
        NSLog(@"image scaled");
        //add image to mainpic
        imgvwProfile.image = selectedImage;
        NSLog(@"11");
        //[ setImage:selectedImage forState:UIControlStateNormal];
        self.imgPic=selectedImage;
        //self.isMainPicImageModified=YES;
        NSLog(@"22");
        //[self sendImage:selectedImage];
        NSLog(@"selectedimage width:%f ht:%f",selectedImage.size.width,selectedImage.size.height);
        [self saveImage:selectedImage withImageName:@"profilePic.png"];
        NSLog(@"33");
    }
}

Kesalahan muncul ketika NSLog(@"11"); telah dieksekusi. Dapatkah seseorang membantu saya mengapa saya mendapatkan kesalahan ini?

Terima kasih Pankaj


person pankaj    schedule 23.11.2011    source sumber


Jawaban (2)


Bisakah Anda mengubah baris di bawah ini dan memeriksa apakah pernyataan ini menimbulkan masalah atau tidak.

 imgvwProfile.image = selectedImage;
                To
 imgvwProfile.image = [selectedImage retain];

Beri tahu saya sekarang aplikasi Anda mogok dalam fungsi ini atau tidak.

person Deeps    schedule 23.11.2011

Jika kesalahan terjadi segera setelah NSLog(@"11") dijalankan (Anda melihat 11 di konsol kan?), maka kesalahan itu terjadi saat merilis UIImage sebelumnya dari self.imgPic. Untuk memverifikasi ini cukup masukkan self.imgPic = null; di awal metode.

Jika demikian, periksa kode Anda untuk panggilan rilis sebelumnya pada imgPic atau variabel lain yang menunjuk ke instance UIImage yang sama. Mungkin dalam scaleAndRotateImage atau metode lain.

person Kay    schedule 23.11.2011