2012-06-23 5 views
2

Bellow가 내 didFinishPickingMediaWithInfo 메서드이며 불필요한 코드가 많고 보유하고 릴리스되는 것을 알고 있습니다. 그러나 이것이 작동하도록하는 방법이었고이를 위반하는 것이 두려웠습니다. 그것을 최적화하려고합니다.UIImagePickerController didFinishPickingMediaWithInfo

불필요한 것들을 벗고이 방법을 깨끗하게 해주는 사람이 있습니까?

또한 4 개의 사진 (카메라 롤 또는 카메라)을로드하는보기 컨트롤러가 있고 선택기에서 2 ~ 3 번째 사진을 선택한 후 앱이 다운되거나 앱이 다운 된 경우 아래 알림 중 하나가 표시됩니다. 내가 뭘 잘못하고있어? 감사!

-2012-06-23 10 : 54 : 07.399 LookdoDia [6525 : 707]받은 메모리 경고.

-wait_fences는 : - 나는 나머지가 매여 방법 (즉, 속성 선언에 대한 확실하지 않다 나는 '하지만이 조금 더해야 10,004,003

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

    [self dismissModalViewControllerAnimated:YES]; 

    UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage]; 
    if(!img) img = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    uiimvImagem.image = [img retain]; 
    uiimvImagem.alpha = 0; 
    UIImageView *tempImageView = [[UIImageView alloc] initWithImage:img]; 
    self.uiimvImagem = [tempImageView retain]; 
    [tempImageView release]; 

    CGRect frame = uiimvImagem.frame; 
    frame.size.width = 359; 
    frame.size.height = img.size.height/(img.size.width/359); 
    uiimvImagem.frame = frame; 

    uisv1.showsVerticalScrollIndicator = NO; 
    uisv1.showsHorizontalScrollIndicator = NO; 
    uisv1.contentSize = CGSizeMake(uiimvImagem.frame.size.width, uiimvImagem.frame.size.height); 
    uisv1.maximumZoomScale = 3.0; 
    uisv1.minimumZoomScale = 0.8; 
    uisv1.clipsToBounds = YES; 
    uisv1.delegate = self; 

    [uisv1 addSubview:uiimvImagem]; 

    [img release]; 

} 

답변

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

    UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage]; 
    if(!img) img = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    uiimvImagem.image = img; //why bother? 
    uiimvImagem.alpha = 0; //why bother? 
    UIImageView *tempImageView = [[UIImageView alloc] initWithImage:img]; 
    self.uiimvImagem = tempImageView; //Make sure your self.uiimvImagem is a retained property! Also, don't forget to nil it out in your dealloc method 
    [tempImageView release]; 

    CGRect frame = uiimvImagem.frame; 
    frame.size.width = 359; 
    frame.size.height = img.size.height/(img.size.width/359); 
    uiimvImagem.frame = frame; 

    uisv1.showsVerticalScrollIndicator = NO; 
    uisv1.showsHorizontalScrollIndicator = NO; 
    uisv1.contentSize = CGSizeMake(uiimvImagem.frame.size.width, uiimvImagem.frame.size.height); 
    uisv1.maximumZoomScale = 3.0; 
    uisv1.minimumZoomScale = 0.8; 
    uisv1.clipsToBounds = YES; 
    uisv1.delegate = self; 

    [uisv1 addSubview:uiimvImagem]; 

    [self dismissModalViewControllerAnimated:YES]; 

} 

: 회신을받지 못한 어디서 uisv1이 할당되는지 모르겠다.) 이미지 뷰에 이미지를 할당하고 새로 할당 된 UIImageView로 전체를 실행하면 여전히 옳지 않은 무언가가있다.

관련 문제