2

Я пытаюсь отправить почту в список массива электронной почты, который я получаю из базы данных, когда я отправляю список получателей, заполняется в iOS 7, но когда я попытался в iOS 5, список получателей не заселяться. Любая идея почему? Это моя почта функцияMFMailComposeViewController не заполняет получателей в ios 5

-(void)sendEmailToContacts:(NSArray *)fList withText:(NSString *)emailText withTag:(NSInteger)tag 
{ 
    if([MFMailComposeViewController canSendMail]) 
    { 
     MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init]; 
     mailComposer.view.tag=tag; 
     NSString *htmlBody =[NSString stringWithFormat:@"<a href=\"%@\">%@</a>",_currentAdd.contentUrl,addtext]; 
     [mailComposer setMessageBody:htmlBody isHTML:YES]; 
     [mailComposer setSubject:_currentMail.subject]; 
     mailComposer.mailComposeDelegate = self; 
     [mailComposer setToRecipients:fList]; 
     [self presentViewController:mailComposer animated:YES completion:nil]; 
    } 
    else 
    { 
     NSLog(@"Device is unable to send email in its current state."); 
    } 
} 

Мой fList (список получателей) является NSArray, это выход образец моего

п-списка
(
    "[email protected]", 
    "[email protected]", 
    "[email protected]", 
    "[email protected]" 
) 
+0

Можете ли вы поставить breakpointed на метод sendEmailToContacts и проверить, содержит ли список fList указанный список адресов электронной почты, это может быть nil? – ldindu

+0

это работает для ios6 и выше – codercat

+0

Я проверил с точкой останова, флаер содержит электронную почту, поскольку я опубликовал выше, она работает для ios7, у меня нет ios6 sdk, поэтому не знаю, работает ли это для этого – Gamerlegend

ответ

0
-(void)sendEmailToContacts:(NSArray *)fList withText:(NSString *)emailText withTag:(NSInteger)tag 
{ 
    if([MFMailComposeViewController canSendMail]) 
    { 
     MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init]; 
     //mailComposer.view.tag=tag; 
     NSString *htmlBody =[NSString stringWithFormat:@"<a href=\"%@\">%@</a>",_currentAdd.contentUrl,addtext]; 
     [mailComposer setMessageBody:htmlBody isHTML:YES]; 
     [mailComposer setSubject:_currentMail.subject]; 
     mailComposer.mailComposeDelegate = self; 
     [mailComposer setToRecipients:fList]; 
     [self presentViewController:mailComposer animated:YES completion:nil]; 
    } 
    else 
    { 
     NSLog(@"Device is unable to send email in its current state."); 
    } 
} 

Видимо проблема была с настройкой тега, если я пытаюсь установить тег перед тем setToRecipients линии не будет показывать список получателей в прошивке 5, он будет работать, если настройка тег линия закомментирована или после setToRecipients.

0

Получатели, как ожидается, в качестве неизменного массива. проверьте свой тип массива

NSArray *usersTo = [NSArray arrayWithObject: @"[email protected]"]; 
    [mailComposer setToRecipients:usersTo]; 
+0

Я попытался устранить неполадки, вручную назначив fList, как вы предложили, NSArray * fList = [NSArray arrayWithObject: @ "[email protected]"]; НО ВСЕ ЕЩЕ ОЧЕНЬ ВОПРОС, он работает на iOS7, но не на iOS5 – Gamerlegend

0

Попробуйте этот.

 NSArray *fList = [NSArray arrayWithObjects:@"[email protected]",@"[email protected]",@"[email protected]",@"[email protected]",@"[email protected]", nil]; 

     MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init]; 
     mailComposer.view.tag=tag; 
     NSString *htmlBody =[NSString stringWithFormat:@"<a href=\"%@\">%@</a>",_currentAdd.contentUrl,addtext]; 
     [mailComposer setMessageBody:htmlBody isHTML:YES]; 
     mailComposer.mailComposeDelegate = self; 
     [mailComposer setSubject:_currentMail.subject]; 
     mailComposer.delegate = self; 
     [mailComposer setToRecipients:fList]; 
     [self presentViewController:mailComposer animated:YES completion:nil]; 
+0

Что такое mailComposeViewController здесь в mailComposeViewController.mailComposeDelegate? – Gamerlegend

+0

Не нужно писать, что @Gamerlegend – Maul

+0

Да, я сделал это, но все еще не работал для iOS 5 – Gamerlegend