2

iPhone 4で以下のコードを使用してSMSを送信したいのですが、このコードのみが原因でアプリケーションがクラッシュします。

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]; SMSを送信するには、コードを追加する必要があり ます。

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 に答える