При отправке СМС приложение вылетает - PullRequest
2 голосов
/ 06 сентября 2011

Я хочу отправить смс с помощью приведенного ниже кода в 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, так что кто-нибудь может мне помочь, что я делаю не так?

Ответы [ 3 ]

4 голосов
/ 06 сентября 2011

Вы autoreleasing, а затем releasing снова smsComposerController.

Просто отпустите его один раз.Вы можете просмотреть правила управления памятью здесь .

3 голосов
/ 06 сентября 2011
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
        }

Вы не должны освобождать объект автоматического освобождения.

0 голосов
/ 07 сентября 2011

Вам нужно добавить [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];
        }
...