发送短信时,应用程序崩溃了

时间:2011-09-06 13:57:46

标签: iphone objective-c ios4 sms mfmessagecomposeview

我想在iPhone 4中使用以下代码发送短信,但由于此代码,应用程序崩溃。

if ([MFMessageComposeViewController canSendText]) {
                MFMessageComposeViewController *smsComposerController = [[[MFMessageComposeViewController alloc] init] autorelease];
                [smsComposerController setBody:@"First SMS"];
                smsComposerController.recipients = [NSArray arrayWithObjects:@"9886333333",@"9980444444",nil];
                smsComposerController.messageComposeDelegate = self;
                [smsComposerController release];
            }

我是短信发送的新手,所以任何人都可以帮助我做错了吗?

3 个答案:

答案 0 :(得分:4)

您是autoreleasing,然后是releasing smsComposerController

只需发布一次。您可以查看内存管理规则here

答案 1 :(得分:3)

if ([MFMessageComposeViewController canSendText]) {
            MFMessageComposeViewController *smsComposerController = [[[MFMessageComposeViewController alloc] init] autorelease];
            [smsComposerController setBody:@"First SMS"];
            smsComposerController.recipients = [NSArray arrayWithObjects:@"9886333333",@"9980444444",nil];
            smsComposerController.messageComposeDelegate = self;
            [smsComposerController release];          <-------------- THIS IS YOUR ERROR
        }

您不应该发布自动释放对象。

答案 2 :(得分:0)

您需要添加[self presentModalViewController:smsComposerController animated:YES]; 在您的代码中发送短信。

if ([MFMessageComposeViewController canSendText]) {
            MFMessageComposeViewController *smsComposerController = [[[MFMessageComposeViewController alloc] init] autorelease];
            [smsComposerController setBody:@"First SMS"];
            smsComposerController.recipients = [NSArray arrayWithObjects:@"9886333333",@"9980444444",nil];
            smsComposerController.messageComposeDelegate = self;
           [self presentModalViewController:smsComposerController animated:YES];
        }
相关问题