Wie verwende ich "openParentApplication" und "handleWatchKitExtensionRequest" richtig, damit "reply ()" aufgerufen wird?

Situation Ich benutzeopenParentApplication in der Watch-App zum Anrufen vonhandleWatchKitExtensionRequest in der Haupt-App. Dies funktioniert gut im Simulator und auch auf den tatsächlichen Geräten (Apple Watch und iPhone), wenn die iPhone-App aktiv / geöffnet ist.

Problem Wenn ich es auf den tatsächlichen Geräten (Apple Watch und iPhone) starte,handleWatchKitExtensionRequest gibt keine Daten an @ zurüopenParentApplication wenn die Haupt-iPhone-App nicht aktiv / geöffnet ist.

Code in InterfaceController.m in der WatchKit-Erweiterung:

NSDictionary *requst = @{ @"request" : @"getData" };
[InterfaceController openParentApplication:requst
                                     reply:^( NSDictionary *replyInfo, NSError *error ) {
                                        // do something with the returned info
                                     }];

Code im App-Delegaten der Haupt-App auf dem iPhone:

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void ( ^)( NSDictionary * ))reply
{
  if ( [[userInfo objectForKey:@"request"] isEqualToString:@"getData"] )
  {
    // get data
    // ...
    reply( data );
  }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage