J'ai un problème avec ce morceau de code quand je construis pour différents SDKs de base:problème avec MFMailComposeViewController de « Pas de comptes de messagerie » alerte - SDK 3.0 vs SDK 4.0
MFMailComposeViewController *mail = nil;
mail = [[MFMailComposeViewController alloc] init];
NSString *description = @"Some mail string";
if([MFMailComposeViewController canSendMail])
{
mail.mailComposeDelegate =self;
[mail setSubject:story.title];
[mail setMessageBody:[NSString stringWithFormat:(NSString *)kMessageBodyFormat,description,story.webLink] isHTML:NO];
}
[self presentModalViewController:mail animated:YES];
[mail release];
mail=nil;
Lorsque je construis avec SDK base 3.0, dans le cas où l'initialisation MFMailComposeViewController's
renvoie zéro qui se produit si l'utilisateur n'a pas de comptes de messagerie, l'alerte par défaut "Aucun compte de messagerie" est mis en place par le système.
Mais lorsque je le compile avec Base SDK 4.0 et le déploie pour le système d'exploitation 3.0, si l'utilisateur n'a aucun compte de messagerie, la même alerte n'est pas affichée par le système, mais se bloque presentModalViewController
.
MFMailComposeViewController's
retours d'initialisation nul si l'utilisateur ne dispose d'aucun compte de messagerie à la fois 3.0 et 4.0 SDK de base, mais quelque part presentModalViewController
met intelligemment l'alerte en cas de SDK 3.0 mais SDK 4.0 déployé sur 3.0 échoue et se bloque.
Est-ce que quelqu'un a fait face à ce problème/des idées ce qui se passe réellement.
Merci, Raj
Oui, très vrai! Le crash était dû au paramètre nil à présentModalViewController qui était correct dans 3.0 mais dans le SDK 4.0 de base c'est problématique. Je ne comprends pas une chose cependant, d'où l'alerte "No Mail Accounts" apparaît-elle? Il est probable que le système vérifie les comptes de messagerie dès que l'objet MFMailComposeViewController est créé et affiche l'alerte. –
Curieux si vous avez besoin d'obtenir un pointeur vers le "No Mail Accounts" UIAlertView? J'ai une sous-classe à l'intérieur d'un UIPopOverController qui devient inactive/l'interaction de l'utilisateur devient "Non" si/quand le bouton OK est appuyé sur la vue d'alerte "No Mail Accounts". Si vous touchez pour rejeter le popover - puis appuyez sur l'action pour le montrer à nouveau - le popover devient visible. Mais cela ne se produit que si vous passez par ce flux - en tapant "OK" de l'alerte "No Mail Accounts" ne fonctionne pas. – Cole