MFMailComposeViewController不在设备上工作,在控制台输出上打印的实例是<register sp =“”is =“”not =“”available =“”> </register>

时间:2013-04-25 13:21:13

标签: ios objective-c mfmailcomposeviewcontroller

我创建了这个名为MailComposeViewController的Utility类,我从其他视图控制器中获取此类,邮件Composer在模拟器上正常工作,但是在设备上崩溃。

这样我调用函数

       NSLog(@"Mail");
    MailComposeViewController *mailComposer =[[MailComposeViewController alloc]init];
    [mailComposer showPicker:self andImage:md.Img_savedImageAfterEffect];

下面是我的Utility类,其中包含Send Mail功能的代码

      #import "MailComposeViewController.h"

      UIViewController *Controller;
      @implementation MailComposeViewController


      -(void)showPicker:(id)viewController andImage:(UIImage*)image;
     {
         Controller = viewController;

           Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
         if (mailClass != nil)
        {
             // We must always check whether the current device is configured for sending emails
            if ([mailClass canSendMail])
           {
               [self displayComposerSheet:viewController andImage:image];
           }
           else
           {
               //[self launchMailAppOnDevice];
              [self displayComposerSheet:viewController andImage:image];
          }
      }
     else
     {
        //[self launchMailAppOnDevice];
        [self displayComposerSheet:viewController andImage:image];
     }
   }
   -(void)displayComposerSheet:(id)viewController andImage:(UIImage*)image
   {
      MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
     picker.mailComposeDelegate = self;


     NSData *myData = UIImageJPEGRepresentation(image,0.9);
     [picker addAttachmentData:myData mimeType:@"image/jpg" fileName:@""];

      picker.modalPresentationStyle = UIModalPresentationFormSheet;
      picker.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

     [viewController presentModalViewController:picker animated:YES];
    [picker release];
  }
      // Dismisses the email composition interface when users tap Cancel or Send. Proceeds to 
    update the   message field with the result of the operation.
  - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:  
  (MFMailComposeResult)result error:(NSError*)error
  {
      //message.hidden = NO;
     // Notifies users about errors associated with the interface
     switch (result)
     {
         case MFMailComposeResultCancelled:
         // message.text = @"Result: canceled";
         break;
         case MFMailComposeResultSaved:
         // message.text = @"Result: saved";
         break;
         case MFMailComposeResultSent:
         //message.text = @"Result: sent";
         break;
         case MFMailComposeResultFailed:
         // message.text = @"Result: failed";
         break;
        default:
            // message.text = @"Result: not sent";
        break;
     }
   [Controller dismissModalViewControllerAnimated:YES];
 }


  - (void)viewDidLoad
   {
         [super viewDidLoad];
     // Do any additional setup after loading the view.
  }

  - (void)didReceiveMemoryWarning
  {
      [super didReceiveMemoryWarning];
      // Dispose of any resources that can be recreated.
  }

  @end

Crash Snap Shot

  Crash Report
  UIKit`-[UIViewController presentModalViewController:animated:]:
  0x3a4d5238:  push   {r7, lr}
 0x3a4d523a:  mov    r7, sp
 0x3a4d523c:  sub    sp, #4
 0x3a4d523e:  movw   r1, #18934
    0x3a4d5242:  mov.w  r9, #0
  0x3a4d5246:  movt   r1, #525
  0x3a4d524a:  str.w  r9, [sp]
  0x3a4d524e:  add    r1, pc
  0x3a4d5250:  ldr    r1, [r1]
   0x3a4d5252:  blx    0x3a734ce4                ; symbol stub for: 
    -[_UIHostedTextServiceSession    dismissTextServiceAnimated:]
  0x3a4d5256:  add    sp, #4
  0x3a4d5258:  pop    {r7, pc}
  0x3a4d525a:  nop    

View Controller和mailController的实例在控制台上打印 打印viewController的描述: 打印机的打印说明: (MFMailComposeViewController *)picker =

0 个答案:

没有答案
相关问题