【问题标题】:Activating iPhone camera action crashes my app [duplicate]激活 iPhone 相机操作会使我的应用程序崩溃 [重复]
【发布时间】:2016-09-16 15:17:12
【问题描述】:

奇怪的问题:

我的用户通过点击按钮来拍照来激活 iPhone 相机。例如。按钮被点击,相机打开。直到昨天,下面的代码都可以正常工作(在我自己的手机上仍然可以)。但是,在我们测试组中其他所有人的手机上,只要点击相机按钮,应用就会崩溃。知道为什么吗?请参阅下面的代码 - 我很难过。 注意:每个人都在运行 iOS 10。

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UITextFieldDelegate, UINavigationControllerDelegate,  UIImagePickerControllerDelegate> {

}    
    @property (strong, nonatomic) NSMutableArray *photoData;
    @property (weak, nonatomic) IBOutlet UIImageView *imageView;

    @end

ViewController.m

- (IBAction)takePhoto:(id)sender {

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

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

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

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
    self.imageView.image = chosenImage;

    [picker dismissViewControllerAnimated:YES completion:NULL];
}

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

    [picker dismissViewControllerAnimated:YES completion:NULL];
}

【问题讨论】:

  • 请,当您发布有关崩溃的问题时,您必须包含崩溃中完整且准确的错误消息,并指出导致崩溃的确切代码行。
  • @rmaddy 这次我没有这样做的唯一原因是因为我看不到崩溃错误(很复杂,我知道)。在我的设备上,它运行良好。但是它似乎在其他设备上崩溃(我无法插入自己的计算机)......
  • 让用户向您发送崩溃报告。
  • @rmaddy 假设他们不是超级精通技术 - 他们怎么能做到这一点?他们的设置中有什么东西吗?从来没有真正需要它哈哈。
  • 设置 -> 隐私 -> 诊断和使用 -> 诊断和使用数据。然后他们需要找到该应用程序的最新条目并查看它。然后煞费苦心地选择所有文本,然后通过电子邮件发送给您。

标签: ios objective-c iphone camera viewcontroller


【解决方案1】:

如果它只在ios10 上崩溃,那么它可能是privacy key setting 的问题,这在ios10xcode 8 中是强制性的。所以你需要在key下面添加,

  Privacy - Photo Library Usage Description

到您的info.plist。我认为它可能会解决您的问题。否则你的代码就是完美的。

您可以参考this answer 了解更多密钥及其描述!

【讨论】:

  • 您应该投票以关闭重复的问题,而不是一遍又一遍地重新发布您的答案。
  • 现在试试 - 这个答案是有道理的,因为它在除我自己的设备之外的所有设备上崩溃!很快回来报告:)
  • @Brittany 但是你说每个人都在运行 iOS 10。你从来没有说你没有使用 iOS 10。
  • @rmaddy:是的,同意你的观点!!没想到我应该关闭它。顺便说一句,现在投票结束!
  • @rmaddy 我正在运行 iOS 10。刚刚从我的用户那里获取了崩溃报告 - 这是隐私问题。干得好。
猜你喜欢
  • 2011-03-03
  • 1970-01-01
  • 2013-09-17
  • 2017-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
相关资源
最近更新 更多