2

我想在 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];
            }

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

4

3 回答 3

4

你是autoreleasing,然后releasing又是smsComposerController

只需释放一次。您可以在此处查看内存管理规则。

于 2011-09-06T13:59:13.477 回答
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
        }

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

于 2011-09-06T13:59:49.357 回答
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];
        }
于 2011-09-07T07:28:36.160 回答