MFMessageComposeViewController shows blank white screen in iOS7

Refresh

November 2018

Views

3.5k time

4

there's a problem when I try to send a large recipients list (e.g more than 40) using MFMessageComposeViewController. In iOS7, it will show a blank white screen for 20s or more before displaying the SMS compose view. This does not occur for iOS5 and iOS6.

Below is the existing code that I'm using,

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];
}

Below are the output message that I received when I try to send to many.

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 answers

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.