MFMessageComposeViewController shows blank white screen in iOS7

Обновить

November 2018

Просмотры

3.5k раз

4

есть проблема, когда я пытаюсь отправить большой список получателей (например, более 40) с помощью MFMessageComposeViewController. В iOS7, он будет отображаться пустым белым экраном для 20-й или более перед отображением вида SMS сочинять. Это не происходит для iOS5 и iOS6.

Ниже существующий код, который я использую,

NSArray * recipients;

for (NSIndexPath * index in selectedRows) 
{ 
   NSDictionary *dictionary = [data objectAtIndex:index.row];
   NSString *phoneNum =  [dictionary objectForKey:@"contactNum"];
   recipients = [NSArray arrayWithObjects:phoneNum, nil]];
}

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];

if([MFMessageComposeViewController canSendText])
{
    controller.body = bodyOfMessage;
    controller.recipients = recipients;
    controller.messageComposeDelegate = self ;
    controller.wantsFullScreenLayout = NO;
    [(id)_delegate presentModalViewController:controller animated:YES];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

Ниже приведены исходящее сообщение, которое я получил, когда я пытаюсь отправить много.

timed out waiting for fence barrier from com.apple.mobilesms.compose
Received memory warning.
Received memory warning.
Received memory warning.
Received memory warning.
Received memory warning.
Received memory warning.
Received memory warning.
Received memory warning.
Received memory warning.

5 ответы

4

У меня была аналогичная проблема, когда я получил сообщение в консоли "

истекло время ожидания забор барьера от com.apple.mobilesms.compose

Проблема заключалась в том, что я пытался в моем приложении, чтобы добавить номер в строке, но из-за запрос локализации, я поставил его в форме:NSArray *recipents = @[NSLocalizedString(@"numberForRegistrationViaSms", @"")];

а также

[messageController setRecipients:@[recipents]];

Это не сработало по какой - то причине , но, когда я кладу просто, [messageController setRecipients:@[@"123456789"]];ССМ композитор появляется без каких - либо проблем.

-2

Проблема была решена в прошивкой 7.0.3.

1

У меня была такая же проблема.

  • истекло время ожидания забор барьера от com.apple.mobilesms.compose

  • Сообщение Отменено

Вместо этого:

    NSString *phoneNumber = @"888888888";
    [picker setRecipients:@[phoneNumber]];

Попробуй это:

    NSString *phoneNumber = person.phoneNumber;
    [picker setRecipients:@[[NSString stringWithFormat:@"%@", phoneNumber]]];

Это работает для меня.

1

Я думаю, что, возможно, решить эту проблему:

// должен инициировать новый объект NSString

NSString * phoneStr = [NSString stringWithFormat: @ "% @", ...];                                                     

MFMessageComposeViewController * aCtrl = [[MFMessageComposeViewController Alloc] инициализации];
aCtrl.recipients = @ [phoneStr];
...

Тогда хорошо.

2

Я была такая же проблема, то понял,

controller.recipients = // всегда должен быть массив строк.

Убедитесь, что телефонные номера, которые вы пришлете controller.recipients являются NSString.