【问题标题】:After dismissing imagePickerController memory not being released关闭 imagePickerController 后内存没有被释放
【发布时间】:2015-08-14 06:52:41
【问题描述】:

当用户从库中选择图片或取消时,我正在调用[picker dismissViewControllerAnimated:YES completion:NULL];。 为了确定,我还将 delegate 设置为 nil,但这也无济于事。

我错过了什么吗?

-(void)callImagePickerDelegate:(CameraView *)sender{


UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

[self presentViewController:picker animated:YES completion:NULL];


self.imageFromLibrary.frame = CGRectMake(0, self.imageFromLibrary.frame.origin.y, self.imageFromLibrary.frame.size.width, self.imageFromLibrary.frame.size.width);}


- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

[picker dismissViewControllerAnimated:YES completion:NULL];

[self.cameraView.session startRunning];

picker.delegate = nil;}

【问题讨论】:

    标签: objective-c memory-management uiimagepickercontroller


    【解决方案1】:

    我认为您已将选择器声明为强属性,这就是它不释放内存的原因。

    将您的选择器声明为弱属性,然后尝试。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      你 nil 只是选择器的代表而不是实际的选择器对象。所以设置picker = nil,如果你没用过ARC那么也写picker = nil;[picker release];

      【讨论】:

      • 但是......当关闭选择器时,它会自动释放它,因为我使用的是 ARC,所以没有必要将它设置为零......无论如何,尝试过但没有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      • 2011-05-16
      • 1970-01-01
      • 2012-03-15
      • 2013-01-02
      • 2011-09-18
      • 2013-02-11
      相关资源
      最近更新 更多