iphone - Memory warning when tranfer image picked camera to one view to other -


i open camera on button click , take image in uiimage , transfer uiimage other view receive memory warning when 4-5 time.

below code worked for:-

-(void)imagepickercontroller:(uiimagepickercontroller*)picker_camera didfinishpickingmediawithinfo:(nsdictionary*)info {     [picker_camera dismissmodalviewcontrolleranimated:yes];     uiimage *image=[[uiimage alloc] init];     image=[info objectforkey:@"uiimagepickercontrolleroriginalimage"];      [self methodcall:image];     //image_camera=image;    // nsautoreleasepool *apool = [[nsautoreleasepool alloc] init];     //printf("first\n");     // [self performselector:@selector(methodcall) withobject:nil afterdelay:1];      //printf("ok\n");     //[apool release];  } -(void)methodcall:(uiimage *)image{     imagedisplayviewcontroller *imagedisplayviewcontroller_obj=[[imagedisplayviewcontroller alloc] initwithnibname:@"imagedisplayviewcontroller" bundle:nil];     imagedisplayviewcontroller_obj.image_fromcamera=image;     nslog(@"image===>%@    camera==>%@",image,imagedisplayviewcontroller_obj.image_fromcamera);     [self.navigationcontroller pushviewcontroller:imagedisplayviewcontroller_obj animated:yes];    // [imagedisplayviewcontroller_obj release]; }  -(ibaction)takephotocamera:(id)sender{     @try     {         uiimagepickercontroller *picker_camera = [[uiimagepickercontroller alloc] init];         picker_camera.sourcetype = uiimagepickercontrollersourcetypecamera;         picker_camera.delegate = self;          [self presentmodalviewcontroller:picker_camera animated:yes];         [picker_camera release];     }     @catch (nsexception *exception)     {         uialertview *alert = [[uialertview alloc] initwithtitle:@"no camera" message:@"camera not available  " delegate:self cancelbuttontitle:@"ok" otherbuttontitles:nil];         [alert show];         [alert release];     } } 

does 1 me out please.

thanks in advance.

i assume you're not using arc (is there particular reason this?)

  • firstly, allocating uiimage instance that's never used:

    uiimage *image=[[uiimage alloc] init]; image=[info objectforkey:@"uiimagepickercontrolleroriginalimage"]; 

    should changed to:

    uiimage *image = [info objectforkey:@"uiimagepickercontrolleroriginalimage"]; 
  • next, not releasing imagedisplayviewcontroller_obj instance here:

    // [imagedisplayviewcontroller_obj release]; 

    uncomment line.

golden rule of memory management: always release objects don't need more , don't retain don't need.

i highly recommend using arc if you're new obj-c and/or memory management.

some other suggestions:


Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -