iPad 5.1 simulator で UIImagePickerController が正常に動かない


UIImagePickerControllerを使って写真を選択する処理を実装しようとしています。
先人の知恵を頼りにしながら以下のようなコードになりました。
しかしこのコード、iphoneシミュレータやiPad実機などでは正常に動いたのですが、iPad 5.1 simulatorでだけは動作が不安定なんです。


- (IBAction)pushButtonSelectPicture:(id)sender {
	if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]){
		UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
		ipc.delegate = self;
		
		ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
		if(imagePopController != nil){
			[imagePopController dismissPopoverAnimated:NO];
			imagePopController = nil;
		}
		if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
			//iPad
			imagePopController = [[UIPopoverController alloc] initWithContentViewController:ipc];
			[imagePopController presentPopoverFromBarButtonItem:sender
									   permittedArrowDirections:UIPopoverArrowDirectionAny
													   animated:YES];
		}else {
			//iPad以外
			[self presentViewController:ipc animated:YES
							 completion:^{}];
		}
		ipc = nil;
	}
}

-(void)imagePickerController:(UIImagePickerController*)picker
	   didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo{
	if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
		// ipad
		[imagePopController dismissPopoverAnimated:YES];
	}else{
		// iphone
		[self dismissViewControllerAnimated:YES completion:nil];
	}
	[self setImage:image];
	image = nil;
}

popoverまでは正常に動いて写真を選択しても imagePickerContoller:didFinishPickingImage:edittigInfo が呼ばれなかったり、そもそもpopoverが出なかったり。。。
breakpointを設定してステップ実行していると、以下のエラーが出たこともありました。

Named service 'com.apple.PersistentURLTranslator.Gatekeeper' not found. assetsd is down or misconfigured. Things will not work the way you expect them to.

このエラーについて調べてみると、こんなのが↓
ios – Log message referring to Gatekeeper appears occasionally when running simulator – Stack Overflow
objective c – iPad simulator does not work with UIImagePickerController in an iPhone app – Stack Overflow

ひとりは
iPad simulator v5.0
iPad simulator v5.1
でだけこの問題が発生したと言ってます。
私もiPad 5.1 simulatorでは問題があるけど、実機やiPad 6.0 simulatorでは正常に動いています。
simulatorのバグなのかなぁ。

上記リンク先で一応の回避策のようなものが書かれています。
違うデバイスでテストするときは、一旦シミュレータを終了してからリスタートするといいみたい。
確かに私の環境でもこれで一応は動きました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です