【问题标题】:Presenting UIImagePickerController in camera mode causes crash in iOS 7在相机模式下呈现 UIImagePickerController 会导致 iOS 7 崩溃
【发布时间】:2013-10-26 15:09:53
【问题描述】:

在使用下面的代码在相机模式下呈现 UIImagePickerController 时,Xcode 5 内存视图显示我的应用程序消耗了大约 20 MB。当我展示控制器时,我在覆盖的 didReceiveMemoryWarning 中收到内存警告。但即使没有机会释放其中的任何资源,应用程序也会崩溃而不会留下任何日志消息。我在 iPhone 4S 中运行代码。我看到其他类似的问题,但症状与我的略有不同,我没有看到任何明确的答案可以解决我的问题。在 iOS 6 中或当我在照片库模式下显示控制器时,相同的代码不会导致问题。我的具体问题是:

  1. 在相机模式下显示 UIImagePickerController 时,如果出现大约 20 MB 内存使用量的内存警告是否正常?

  2. 我是否应该在展示 UIImagePickerController 之前通过进一步降低内存消耗水平来解决这个问题?

===

- (IBAction)cameraClicked:(id)sender
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.navigationBarHidden = YES;
    imagePicker.toolbarHidden = YES;
    imagePicker.allowsEditing = NO;

    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;  
    [self presentViewController:imagePicker animated:YES completion:nil];
}

【问题讨论】:

    标签: ios iphone


    【解决方案1】:

    您遇到的错误是什么? EXC_BAD_ACCESS 尝试使用仪器中可用的 NSZombieEnabled 以及符号和异常断点进行调试,以便您可以追踪崩溃的原因。

    【讨论】:

    • 我在 didReceiveMemoryWarning 中设置了一个断点。它到达了那里,但由于当时该应用程序已经崩溃,因此无法进一步追踪。 Xcode 显示消息框:“[我的应用程序] 意外退出。丢失连接”
    • 尝试重置模拟器和设置并清空缓存的内存。这可能会有所帮助。
    • 我做了一个干净的构建,它有点帮助。即现在它在呈现 UIImagePickerController 时并没有崩溃,但是当我单击拍摄照片的按钮时。 Xcode 消息框:“[我的应用程序] 意外退出。由于内存压力而终止”。应用在到达之前就崩溃了 - imagePickerController:didFinishPickingMediaWithInfo 并且 Xcode 无法在崩溃上显示除消息框之外的任何足迹。
    • 这在我看来是内存问题,您的设备内存不足,因此您的应用程序未运行并意外崩溃尝试释放一些内存并检查仪器内存泄漏和分配,这可能会有所帮助。请如果我能提供更多帮助,请告诉我。
    • 可以查看链接供您参考:stackoverflow.com/questions/2264304/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    相关资源
    最近更新 更多