Получение данных для усложнения: ExtensionDelegate не вызывается

(Похоже, что с этой проблемой сталкивались другие в предыдущие недели, но я не нашел никаких решений.)

Я пытаюсь сделать действительно простую вещь:Получите данные из моего iOS-приложения или из моего Watch-приложения на мой Complication Controller.

Я оказался гораздо менее способным сделать это, чем я думал. Руководство по переходу watchOS 2 указывает, что я должен «[получить] необходимые данные из делегата расширения», используя следующий код:

ExtensionDelegate* myDelegate = [[WKExtension sharedExtension] delegate];  
NSDictionary* data = [myDelegate.myComplicationData objectForKey:ComplicationCurrentEntry];

Отлично. За исключением того, что я не смог понять, как заставить это работать на стороне расширения. Хотя еще важнее то, что я даже не могу заставить работать код делегата расширения при запуске контроллера сложности. Когда я запускаю усложнение, я получаю это сообщение: «Расширение получило запрос на пробуждение для поддержки усложнения». Однако ни один из кодов в любом из методов делегата расширения, кажется, не выполняется. Я также установил точки останова в каждом методе, и ни одна из этих точек останова не была достигнута.

Он также выглядит как «TransferCurrentComplicationUserInfo:» также предлагается использовать для обновлений усложнения, хотя неясно, как именно он используется. Насколько я понял, он используется для пробуждения расширения часов, чтобы ExtensionDelegate мог сохранять новые данные в следующий раз, когда запускается контроллер усложнений, но из-за предыдущей проблемы я не смог подтвердить.

У меня есть один, возможно, обходной путь (пинг сервера от контроллера сложности и надежда на то, что переменные сеанса сохраняются, чтобы я мог отправить соответствующие данные), но есть все шансы, что, если я не смогу решить эту проблему, моя работа по усложнению будет отложена. Любая помощь здесь будет огромной.

Кстати, вот код, который у меня есть для "getCurrentTimelineEntryForComplication", если это вообще полезно.

- (void)getCurrentTimelineEntryForComplication:(CLKComplication *)complication withHandler:(void(^)(CLKComplicationTimelineEntry * __nullable))handler {  
    NSDate* entryDate = [NSDate date];  

    ExtensionDelegate* myDelegate = [[WKExtension sharedExtension] delegate];  
    NSString* data = [myDelegate.complicationData objectForKey:@"meow"];  
    NSLog(@"complication data: %@", data);  

    CLKComplicationTimelineEntry* entry = [self getTimelineEntry:@"2015-08-25 00:19:42" entryDate:entryDate complication:complication];  

    handler(entry);  
}

Ответы на вопрос(2)

Ваш ответ на вопрос