iOS 8中的MFMailComposeViewController
问题描述:
首先,我的应用在iOS 7上运行良好,因为iOS 8无法通过“MFMailComposeViewController”发送应用内电子邮件。 消息窗口出现,仅显示邮件主题并在几秒钟内关闭。 我发现这个线程描述我的问题,现在试图实现从“乔吹”的答案https://*.com/a/25864182/4061869iOS 8中的MFMailComposeViewController
但即时通讯一些错误,一些语义和解析问题。根据解决办法,这部分
最糟糕的地方:
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"
导致这个错误:
Use of undeclared identifier 'AppDelegate'
有谁知道哪里出了问题,可以吗? 我根据appdelegat.h/.m的文件名尝试了不同的'AppDelegate'字样,但没有任何帮助。
答
您可以通过定义应用程序委托中取的ViewController您工作中,:
AppNameAppDelegate *APP = [[UIApplication sharedApplication]delegate];
不言自明的,由AppName的我的意思是你的应用程序的名称。确保将AppDelegate.h导入到.m文件中。
#import "AppNameAppDelegate.h"
为了记录在案,我也有同样的问题与MFMailComposeViewController
,我已经尝试过的方法在您linked(创建一个全球性的邮件作曲家)职位的建议,但它仍然不会为我工作使用iOS 8模拟器。显然它适用于运行iOS 8的物理设备,但我个人目前还不能确认。
我将导入行添加到前缀文件中,大多数错误都消失了。现在我得到一个新的这一行'[APP cycleTheGlobalMailComposer];' 它说'没有可见@interface for'ITLAppDelegate'声明选择器'cycleTheGlobalMailComposer'' 当使用建议的方法编译时,你有任何错误? – k0riz0n 2014-09-21 10:50:59
如果你在'AppDelegate.m'文件中有'cycleTheGlobalMailComposer'方法,那么你需要从你想要调出邮件编辑器的任何视图中调用该方法。你可以通过在'AppDelegate.h'文件中用' - (void)cycleTheGlobalMailComposer;'来定义它。然后调用这个方法:'ITLAppDelegate * callMethod = [[ITLAppDelegate alloc] init]; [callMethodcycleTheGlobalMailComposer];'。这应该摆脱任何错误。当该方法被调用时,您应该设置断点,以便您可以确切地看到它的去向。这应该会停止编译错误。 – rosshump 2014-09-21 12:27:32
' - (void)cycleTheGlobalMailComposer;'在ITLAppDelegate.m中定义为它在本教程中编写的内容。现在我试了你的代码'ITLAppDelegate * callMethod = [[ITLAppDelegate alloc] init]; [callMethod cycleTheGlobalMailComposer];'但是错误仍然是'没有可见@interface for'ITLAppDelegate'声明选择器'cycleTheGlobalMailComposer'。 – k0riz0n 2014-09-21 15:00:23