【问题标题】:MFMailComposeViewController does not work in productionMFMailComposeViewController 在生产中不起作用
【发布时间】:2017-01-04 06:28:01
【问题描述】:

关于为什么 MFMailComposeViewController 在开发中工作的任何想法,但是当我将我的 Cloudkit 环境设置为生产时,视图控制器甚至不会弹出?这看起来很奇怪,但我相信这是有原因的。 5分钟前运行的代码如下。应用程序的其余部分正常工作,并与服务器完美连接。

CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];
CKRecordID *record = [[CKRecordID alloc] initWithRecordName:@"hidden for stackoverflow"];
[publicDatabase fetchRecordWithID:record completionHandler:^(CKRecord * record, NSError *error) {
    if (!error) {
        dispatch_async (dispatch_get_main_queue(), ^{
            feedbackNumber = record[@"RequestNumber"];

            NSString* number = record[@"RequestNumber"];
            int value = [number intValue] +1;
            record[@"RequestNumber"] = [NSString stringWithFormat:@"%d",value];
            [publicDatabase saveRecord:record completionHandler:^(CKRecord *savedRecord, NSError *saveError) {

                dispatch_sync(dispatch_get_main_queue(), ^{
                  NSString *emailTitle = [NSString stringWithFormat:@"%@%@%@", @"Request #", [NSString stringWithFormat:@"%d",value], @" - AssassinsX Immerse"];
                  NSString *messageBody = @"Please type your email below";

                  NSArray *toRecipents = [NSArray arrayWithObject:@"email here, hidden for stackoverflow"];

                  MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
                   mc.mailComposeDelegate = self;
                  [mc setSubject:emailTitle];
                  [mc setMessageBody:messageBody isHTML:NO];
                  [mc setToRecipients:toRecipents];

                   [self presentViewController:mc animated:YES completion:nil];

                });
            }];
        });
    }
}];

【问题讨论】:

  • 使用调试器看看会发生什么。提取和保存是否成功?您是否将您的开发架构推送到生产环境?

标签: objective-c cloudkit mfmailcomposeviewcontroller


【解决方案1】:

确保您已在设备中添加任何邮件帐户。这是 Swift 中的代码

import UIKit
import MessageUI
class ViewController: UIViewController,MFMailComposeViewControllerDelegate
{
   override func viewDidLoad() 
   {
      super.viewDidLoad()
      self.SendMail()
   }

   func SendMail()
   {
      let to = ["yourmail@gmail.com"]
      let Subject = "Subject Here"
      let MessageBody = "Message Body"            
      let mc: MFMailComposeViewController = MFMailComposeViewController()
      mc.mailComposeDelegate = self
      mc.setSubject(Subject)
      mc.setMessageBody(MessageBody, isHTML: false)
      mc.setToRecipients(to)
      self.presentViewController(mc, animated: true, completion: nil)
   }
}

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 2011-05-05
    • 2014-11-06
    • 2014-01-30
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多