使用UIImagePicker一次后的内存警告

mac*_*_55 14 memory iphone camera uiimagepickercontroller

我已经提到了这个非常好的参考:https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more但我有一些非常严重的问题.我拍照后,收到内存警告.这是我拍的第一张照片,而不是第二张或第三张照片.

我想知道是不是因为我从应用程序目录中加载了几个小jpeg到滚动视图中.我能想到的唯一解决方案是在UIImagePicker处于活动状态时卸载主视图中的所有内容,然后重新加载所有内容,但我不确定这是正确的解决方案,我不知道该怎么做.

UIImagePicker会占用那么多内存吗?我甚至没有处理或显示它所需的图像.即使我把图像丢掉,我也会得到记忆警告.

任何帮助赞赏.

Mar*_*kle 45

对于仍然在寻找实际答案的所有人而不是模糊的陈述,请看这里.我注意到有数百个答案,如"处理你的记忆",但没有回答任何问题.希望这有助于其他人...

更改以下内容

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [imageView setImage:image];
    [self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)

以下是您的模态视图在设置图像之前解散...

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [self dismissModalViewControllerAnimated:YES];
    [imageView setImage:image];
}
Run Code Online (Sandbox Code Playgroud)


Dav*_*des 9

是的,这发生了.要记住的是,获得内存警告是可以的,这并不意味着你是一个坏人,你只需要确保你的应用程序不会崩溃或混淆以响应内存警告.

特别是,您需要了解UIViewController的默认操作是在视图不可见时卸载它们的视图,如果显示全屏图像选择器,它们将不可见.