MFMailComposeViewController
に問題があります
このエラーが発生します
viewServiceDidTerminateWithError: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "The operation couldn’t be completed. (_UIViewServiceInterfaceErrorDomain error 3.)" UserInfo=... {Message=Service Connection Interrupted}
このコードで
- (IBAction) mailbutton:(id)sender
{
if([MFMailComposeViewController canSendMail])
{
[MSAPP.globalMailComposer setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:MSAPP.globalMailComposer animated:YES completion:nil];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Unable to mail. No email on this device?"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[MSAPP cycleTheGlobalMailComposer];
}
}
これは、iOS8シミュレーターの既知の問題です。考えられる回避策については、 この投稿 を参照してください。
MFMailComposeViewControllerを早い段階で割り当てて開始し、必要に応じて1つの静的変数に保持して、静的MFMailComposeViewControllerインスタンスを取得して提示する必要があります。
また、使用するたびに、ほぼ確実にグローバルMFMailComposeViewControllerを「サイクル」する必要があります。同じものを「再利用」することは信頼できません。シングルトンMFMailComposeViewControllerを解放してから再初期化するグローバルルーチンを用意します。使い終わったら毎回電話してください
クレジットは投稿に対して "Joe Blow" に送られます。コードから判断すると、すでにグローバルメールコンポーザーを宣言しています。投稿が示唆するように「リサイクル」してみて、問題が解決するかどうかを確認してください。私は同じ問題を抱えていますが、残念ながらこの解決策では私の問題は解決しません。このソリューションはiOS7.1シミュレーターで機能するが、iOS 8では機能しないことを確認できますが、物理的なiOS8デバイスで機能することが示唆されています。