2

私はプログラミングの経験がありません。

「sendmail」として機能する簡単なiOSアプリを(いくつかのチュートリアルを試すためだけに)やろうとしていました

ボタンを 1 つ押すだけの簡単なインターフェイスで、MFMailComposeViewController ウィンドウが開きます。

それがコードです。

ViewController.h

#import <UIKit/UIKit.h>
#import <MessageUI/MFMailComposeViewController.h>
#import <MessageUI/MessageUI.h>


@interface ViewController : UIViewController <MFMailComposeViewControllerDelegate>

-(IBAction)showPicker:(id)sender;

@end

ViewController.m

#import "ViewController.h"



@interface ViewController ()

@end

@implementation ViewController


-(IBAction)showPicker:(id)sender
{
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;
    NSArray *toRecipients = [NSArray arrayWithObject:@"example@example.com"];
    [picker setToRecipients:toRecipients];
    [picker setSubject:@"TEST SUBJECT"];
    [self presentViewController:picker animated:YES completion:nil];
}


-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    [self dismissViewControllerAnimated:YES completion:nil];
}



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

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

@end

iPhone および iPad シミュレーターでは、魅力的に機能します。しかし、デバイスでテストするとクラッシュし、シグナル SIGABRT が発生し、証拠として main.m の一部が表示されます。

  return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

「スレッド1 - シグナルSIGABRT」が近くにあります。

ヒントはありますか?

事前にみんなに感謝します。

4

2 に答える 2

-1

試してみる 2 つのこと:

  1. ファイルを消去 < SHIFT+CMD+K>

  2. デバイスからファイルをアンインストールし、クリーンアップしたファイルで試してください

于 2012-11-13T17:26:26.960 に答える
-1

showPicker の最初に: これを追加します:

if [MFMailComposeViewController canSendMail]
{
  // Your code
}
else
  NSLog(@"No mail account configured on device or not supported");
于 2012-11-13T17:33:34.133 に答える