在我的应用程序中,我试图使用相机制作一张照片,但它总是无缘无故地崩溃。
我现在处理这个问题很长时间了,所以我提供了看起来不必要的代码:在视图控制器中:
- (id) init
{
if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
self = [super initWithNibName:@"WCAddNewWatchViewController_iPhone" bundle:[NSBundle mainBundle]];
}else
{
self = [super initWithNibName:@"WCAddNewWatchViewController_iPad" bundle:[NSBundle mainBundle]];
}
if(self)
{
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[self navigationItem]setRightBarButtonItem:self.AddButton];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)ChangeImageButtonTapped:(id)sender {
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
else
{
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
picker.mediaTypes = @[(NSString *) kUTTypeImage];
picker.allowsEditing = NO;
[picker setDelegate:self];
[self presentViewController:picker animated:YES completion:nil];
}
#pragma mark UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSString *mediaType = info[UIImagePickerControllerMediaType];
[self dismissViewControllerAnimated:YES completion:nil];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = info[UIImagePickerControllerOriginalImage];
selectedImage = image;
// self.watchImageView.image = selectedImage;
}
NSLog(@"no crash!!!!"); //that's a lie...
}
没有崩溃消息,日志写道应用程序收到内存警告,然后崩溃。设备日志说:
TIL 内存不足的杀手在 iOS 上被称为“jetsam”
谁能看看我的代码并告诉我我做错了什么?