MFMessageComposeViewController на симуляторе - можно отправить текст? - PullRequest
15 голосов
/ 19 февраля 2012

следующая ситуация: хочу отправить в приложение смс.Это мой код, создающий MFMessageComposeViewController:

-(void) showMessageComposerWithText:(NSString*)messageText telNumber:(NSString*)telNumber composeDelegate:(id)delegate
{
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    if([MFMessageComposeViewController canSendText])
    {   
        controller.body = messageText;
        controller.recipients = [NSArray arrayWithObject:telNumber];
        controller.messageComposeDelegate = delegate;

        [delegate presentModalViewController:controller animated:YES];
    }
}

Так что я думаю, что это прямо.При тестировании в симуляторе я получаю следующее исключение: Application tried to push a nil view controller on target <MFMessageComposeViewController: 0x8a4e090>.Мне также интересно, почему [MFMessageComposeViewController canSendText] возвращает YES при запуске приложения в симуляторе.

При запуске на устройстве все работает правильно.

Я не смог найтичто-нибудь в документации / Интернете относительно этого странного поведения.

Я использую Xcode 4.3 на ОС 10.7.3, цель развертывания - iOS 5.0.

Заранее спасибо, tubtub

Ответы [ 4 ]

23 голосов
/ 13 июня 2012

Эта проблема возникает при установке бета-версии сообщений на OS X Lion.

Редактировать: Это также происходит в Mountain Lion, когда настроена и включена учетная запись iMessage.Если учетная запись отключена, она работает правильно (canSendText возвращает NO).

Совет. Если вы используете controller.modalTransitionStyle = UIModalTransitionStylePartialCurl, вы можете вернуться в симулятор, нажав на свернутую «страницу» в верхнем левом углу.

4 голосов
/ 09 марта 2012

Симулятор всегда должен возвращать NO из canSendText, это не относится к симуляторам iOS 5.0 и 5.1.С Xcode 4.2 он завис, на Xcode 4.3 он просто выдвигает ноль контроллера вида.

2 голосов
/ 24 февраля 2012

Я вижу то же самое.Я думаю, что это ошибка в симуляторе iOS 5 с Xcode 4.3.canSendText правильно возвращает NO в симуляторе iOS 4.3.Тот же код отлично работает на устройстве.

1 голос
/ 03 августа 2012

При такой конфигурации canSendText правильно возвращает NO в симуляторе (плюс, появляется UIAlertView, сообщающий, что обмен текстовыми сообщениями недоступен):

  • Горный Лев
  • Xcode 4.4,
  • iOS 5.1
...