首先,我的應用在iOS 7上運行良好,因爲iOS 8無法通過「MFMailComposeViewController」發送應用內電子郵件。 消息窗口出現,僅顯示郵件主題並在幾秒鐘內關閉。 我發現這個線程描述我的問題,現在試圖實現從「喬吹」的答案https://stackoverflow.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'字樣,但沒有任何幫助。
我將導入行添加到前綴文件中,大多數錯誤都消失了。現在我得到一個新的這一行'[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