MFMessageComposeViewController на Simulator - canSendText?
следующая ситуация: я хочу отправить SMS приложения. Это мой код, создающий 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];
}
}
Поэтому я думаю, что это прямолинейно. При тестировании в Simulator я получаю следующее исключение: Application tried to push a nil view controller on target <MFMessageComposeViewController: 0x8a4e090>
. Мне также интересно, почему [MFMessageComposeViewController canSendText]
возвращает YES
при запуске приложения в симуляторе.
При работе на устройстве все работает правильно.
Я не мог найти ничего в docs/web относительно этого странного поведения.
Я запускаю Xcode 4.3 в OS 10.7.3, целью развертывания является iOS 5.0.
Спасибо заранее,
tubtub
Ответы
Ответ 1
Эта проблема возникает, когда вы устанавливаете бета-версию сообщений на OS X Lion.
Изменить: это также происходит на Mountain Lion, когда есть учетная запись iMessage, настроенная и разрешенная. Если учетная запись отключена, она работает правильно (canSendText возвращает NO).
Совет. Если вы используете controller.modalTransitionStyle = UIModalTransitionStylePartialCurl
, вы можете вернуться в Симулятор, нажав на скрученную "страницу" в верхнем левом углу.
Ответ 2
Симулятор должен всегда возвращать NO из canSendText, это не относится к iOS 5.0 и 5.1 симуляторам. С Xcode 4.2 он разбился, на Xcode 4.3 он просто толкает контроллер представления nil.
Ответ 3
Я вижу то же самое. Я думаю, что это ошибка в симуляторе iOS 5 с Xcode 4.3. canSendText
корректно возвращает NO
в симуляторе iOS 4.3. Тот же код отлично работает на устройстве.
Ответ 4
В этой конфигурации canSendText корректно возвращает NO в симуляторе (плюс, UIAlertView, похоже, говорит, что текстовые сообщения недоступны):
- Горный лев
- Xcode 4.4,
- iOS 5.1
Ответ 5
Получение такой же ошибки.
Im на OSX 10.8.5 с XCode 5.0 (5A1413).
Попробовал перейти на разные типы симуляторов (iPhone, iPad), но результаты остались прежними. Также попытался отключить учетную запись в Сообщения, но безрезультатно.