2016-09-15 3 views
0

Я создаю автономное приложение iMessage. У меня есть UIViewController, который наследуется от MSMessagesAppViewController. Кажется, activeConversation всегда ноль. Любые идеи почему? Я размышляю о том, как Apple отправляет сообщение в своем проекте Ice Cream.Начало работы MSConversation для отправки сообщения

MSConversation *conversation = [self activeConversation]; 
    if (conversation) { 
     MSMessageTemplateLayout *layout = [[MSMessageTemplateLayout alloc] init]; 
     layout.caption = @"Caption"; 
     layout.subcaption = @"subcaption"; 

     MSMessage *message = [[MSMessage alloc] init]; 
     message.URL = [NSURL URLWithString:@"www.example.com"]; 
     message.layout = layout; 

     [conversation insertMessage:message completionHandler:^(NSError *error) { 
      if (error) { 
       NSLog(@"Error sending message %@", [error localizedDescription]); 
      } 
     }]; 
    } 
    else { 
     NSLog(@"No &%#%&^# conversation found"); 
    } 

Может быть стоит отметить UIViewController встраивается в UINavigationController.

+0

MSConversation * разговор = [MSConversation new]; отправит новое сообщение, но все же пытается получить текущий поток. –

ответ

1

Оказывается, у вас может быть только один экземпляр MSMessagesAppViewController, который фактически взаимодействует с цепочками бесед. Другие контроллеры могут наследовать от MSMessagesAppViewController, но ни один из протоколов беседы или методы делегирования делегатов с компактным/расширенным доступом не будут срабатывать в этих экземплярах, а только в первом экземпляре, с которым сталкивается расширение.