2014-09-20 4 views
1

Tout d'abord, mon application a bien fonctionné sur iOS 7, puisque iOS 8 je ne peux pas envoyer d'e-mail via "MFMailComposeViewController". La fenêtre de message s'affiche, affiche uniquement l'objet du message et se ferme en quelques secondes. J'ai trouvé ce fil ici qui décrit mon problème et maintenant essayé d'implémenter la réponse de "Joe Blow" https://stackoverflow.com/a/25864182/4061869MFMailComposeViewController dans iOS 8

Mais en obtenant quelques erreurs, quelques problèmes de sémaphore et d'analyse.

pire chose selon cette partie de la solution de contournement:

Of course have this in your Prefix file 

#define APP ((AppDelegate *)[[UIApplication sharedApplication] delegate]) 
// it's worth noting that is the delegate, not the "application" 

conduit à cette erreur:

Use of undeclared identifier 'AppDelegate'

Tout le monde sait où le problème peut être? J'ai essayé différentes formulations sur 'AppDelegate' en fonction de mon nom de fichier de l'appdelegat.h/.m mais rien n'y fait.

Répondre

0

Vous pouvez définir le délégué de l'application dans ViewController selon lequel vous travaillez, en utilisant:

AppNameAppDelegate *APP = [[UIApplication sharedApplication]delegate]; 

Pour l'évidence, par AppName je veux dire le nom de votre application. Assurez-vous d'importer le AppDelegate.h dans votre fichier .m aussi.

#import "AppNameAppDelegate.h" 

Pour mémoire, je suis aussi ayant le même problème avec MFMailComposeViewController, et je l'ai essayé la méthode proposée dans le poste que vous linked (création d'un compositeur de messagerie global), mais il ne fonctionne toujours pas pour moi en utilisant le simulateur iOS 8. Apparemment, cela fonctionne sur un périphérique physique exécutant iOS 8, mais personnellement, je ne peux pas le confirmer pour le moment.

+0

J'ai ajouté la ligne d'importation au fichier de préfixe et la plupart des erreurs ont disparu. Maintenant, j'en ai un nouveau avec cette ligne '[APP cycleTheGlobalMailComposer];' qui dit 'Non @interface visible pour 'ITLAppDelegate' déclare le sélecteur 'cycleTheGlobalMailComposer'' Avez-vous des erreurs lors de la compilation lorsque vous utilisez la méthode suggérée? – k0riz0n

+0

Si vous avez votre méthode 'cycleTheGlobalMailComposer' dans le fichier' AppDelegate.m', vous devez appeler cette méthode à partir de la vue que vous voulez afficher. Vous pouvez le faire en le définissant dans le fichier 'AppDelegate.h' par:' - (void) cycleTheGlobalMailComposer; '. Ensuite, appelez cette méthode comme: 'ITLAppDelegate * callMethod = [[ITLAppDelegate alloc] init]; [callMethod cycleTheGlobalMailComposer]; '. Cela devrait se débarrasser de toutes les erreurs. Vous devez définir des points d'arrêt lorsque cette méthode est appelée afin que vous puissiez voir exactement où elle va. Cela devrait arrêter les erreurs de compilation. – rosshump

+0

Le '- (void) cycleTheGlobalMailComposer;' est défini dans ITLAppDelegate.m comme indiqué dans le tutoriel. Maintenant, j'ai essayé votre code 'ITLAppDelegate * callMethod = [[ITLAppDelegate alloc] init]; [callMethod cycleTheGlobalMailComposer]; 'mais l'erreur est toujours' Aucune @interface visible pour 'ITLAppDelegate' déclare le sélecteur 'cycleTheGlobalMailComposer''. – k0riz0n

Questions connexes