Problem podczas korzystania z MFMailComposeViewController
Mam trudny problem. W jednej z moich aplikacji, z ponad 150 000 pobrań ... Mam problem, który rzadko występuje i którego nie mogę zrozumieć.
Problem jest następujący: w widoku, w którym użytkownik może udostępnić listę pocztą e-mail, otwieram okno poczty za pomocąMFMailComposeViewController
. Jednak w niektórych przypadkach aplikacja wydaje się mieć problem z użyciem kompozytora poczty. Użytkownik naciska przycisk udostępniania, okno poczty przesuwa się w górę, czeka około 1-2 sekund, a następnie zamyka się ponownie. Brak treści w oknie poczty, chociaż wysyłam do niej dane. Ja sam nie byłem w stanie odtworzyć problemu na żadnym urządzeniu ani w symulatorze, jakkolwiek ma to jeden kolega. Uruchomiłem aplikację za pomocą XCode na swoim telefonie i otrzymałem następujące informacje w dziennikach:
2013-03-01 14:43:39.604 appname[318:907] <MFMailComposeRemoteViewController: 0x1ebfb100> timed out waiting for fence barrier from com.apple.MailCompositionService
2013-03-01 14:43:39.631 appname[318:907] viewServiceDidTerminateWithError: Error Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed. (XPCObjectsErrorDomain error 2.)"
Wyszukałem błąd „przekroczył limit czasu oczekiwania na barierę ogrodzenia z com.apple.MailCompositionService”, ale nie mogę znaleźć żadnej pomocy.
Czy ktoś ma z tym jakieś doświadczenie? Jak mogę to rozwiązać?
Mój kod do otwierania widoku:
-(void)displayComposerSheetWithBodyString:(NSString *)aBody
{
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]init];
picker.mailComposeDelegate = self;
[picker setSubject:@"Lista"];
NSString *emailBody = aBody;
[picker setMessageBody:emailBody isHTML:NO];
[self.navigationController presentModalViewController:picker animated:YES];
}
else
{
[[[UIAlertView alloc]initWithTitle:NSLocalizedString(@"Din enhet är inte redo att skicka e-post. Kontrollera dina inställningar", nil)
message:nil
delegate:self
cancelButtonTitle:NSLocalizedString(@"OK", nil)
otherButtonTitles:nil]
show];
}
}