user302631
user302631

Reputation: 11

Simulator Crashing When Running UIImagePickerController Xcode 7

My iPhone 5 simulator is crashing when I am trying to open a UIImagePickerController

my .m code:

#import "TestViewController.h"

@interface TestViewController ()

@end

@implementation TestViewController

- (void)viewDidLoad {

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a    nib.

if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

    UIAlertView *myAlertView = [[UIAlertView alloc]  initWithTitle:@"Error"
                                                            message:@"Device has no camera"
                                                         delegate:nil
                                                cancelButtonTitle:@"OK"
                                                otherButtonTitles: nil];

    [myAlertView show];

}

}

- (void)viewDidAppear:(BOOL)animated {

[super viewDidAppear:animated];

}

- (IBAction)takePhoto:(UIButton *)sender {

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

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

}

 - (IBAction)selectPhoto:(UIButton *)sender {

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

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


}

 #pragma mark - Image Picker Controller delegate methods

 - (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];

}

@end

my .h code:

#import <UIKit/UIKit.h>

@interface TestViewController : UIViewController   <UIImagePickerControllerDelegate, UINavigationControllerDelegate>

@property (strong, nonatomic) IBOutlet UIImageView *imageView;

- (IBAction)takePhoto:  (UIButton *)sender;
- (IBAction)selectPhoto:(UIButton *)sender;

@end

This issue has been really annoying and I would really appreciate an answer. The code is to select an image from the photo library. I have the frameworks: Foundation, UIKit and CoreGraphics added into my project!

Thanks in Advance!

Upvotes: 1

Views: 802

Answers (3)

Stive
Stive

Reputation: 6888

Add this in your info.plist

Camera :

Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use Photo Library:

Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use

Upvotes: 1

user302631
user302631

Reputation: 11

I fixed it by changing it from UIImagePickerControllerSourceTypePhotoLibrary to UIImagePickerControllerSourceTypeSavedPhotosAlbum

Upvotes: 0

Loegic
Loegic

Reputation: 3438

The camera is not available in the simulator. You already made the check but you didn't set the picker.sourceType property :

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
            picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 } else {
            picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
        }
[self.navigationController presentModalViewController:picker animated:YES];

Upvotes: 2

Related Questions