mailComposeController:didFinishWithResult:error:
에 반환 된 MFMailComposeResult
이 올바른지 iOS에 의존해야합니다. 시뮬레이터는 그 결과를 가짜로 만든다. 실제로는 MFMailComposeResultSent
이지만 메일은 전송되지 않습니다.
언급 된 튜토리얼은 중요한 포인트를 벗어났습니다 : 당신이 MFMailComposeViewController
을 사용하기 전에 가장 먼저 할 일은 [MFMailComposeViewController canSendMail]
을 확인하는 것입니다. 사용자가 기기에서 메일을 구성하지 않은 경우 해당 기기는 NO
을 반환합니다. 올바른 방법은 클래스 MFMailComposeViewController
이 존재하는지 확인하는 것입니다 3.0 이전에 아이폰 OS 버전을 지원해야하는 경우 :
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
if ([mailClass canSendMail])
{
[self displayComposerSheet];
}
else
{
[self launchMailAppOnDevice];
}
}
else
{
[self launchMailAppOnDevice];
}
canSendMail-문제
는하지만 실제 장치에서 테스트 할 수 있습니다. canSendMail을 확인하지 않고 사용자에게 메일 계정이 구성되어 있지 않으면 충돌이 발생합니다.
실제 장치가 필요합니다. – Seunghoon