【发布时间】:2012-12-18 16:21:10
【问题描述】:
在我的应用程序中,我尝试使用相机制作单张照片,但它总是无缘无故地崩溃。
我已经处理这个问题很长时间了,所以我提供了一些看似不必要的代码: 在视图控制器中:
- (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...
}
没有崩溃消息,日志写道应用收到内存警告,然后崩溃。设备日志说:
直到内存不足的杀手在 iOS 上被称为“jetsam”
谁能看看我的代码并告诉我我做错了什么?
【问题讨论】:
-
总是有原因的。您的崩溃消息和崩溃日志是什么?
-
没有崩溃消息,日志写道应用收到内存警告,然后崩溃。设备日志显示:TIL 内存不足杀手在 iOS 上称为“jetsam”。
-
有一个崩溃日志。看看组织者
-
WatchCollectorNavController[34790] :收到内存警告。 com.apple.launchd[1] (com.apple.networkd_privileged[34742])
: (com.apple.networkd_privileged) Exited: Killed: 9 ReportCrash[34792] : libMobileGestalt copySystemVersionDictionaryValue: 无法从中查找 ReleaseType系统版本字典 ReportCrash[34792] :不保存仅暂停的 Jetsam 日志,因为今天已经转储。 UserEventAgent[13] : jetsam: 正在创建内核终止快照 SpringBoard[69] : 收到内存警告。 -
单击产品 -> 编辑方案 -> 诊断,在内存管理部分中
Enable Guard Malloc和Enable Zombie Objects的复选框,这可能会给你一些东西
标签: ios uiimagepickercontroller