3

WatchKit 拡張機能を作成していて、ホスト アプリケーションの[NSBundle mainBundle]. 私は試しまし[NSBundle bundleWithIdentifier:]たが、それはただ返されますnil

いくつかの潜在的な回避策がありますが、「ホストから必要なものを読み取るだけ」ほど単純なものはありませんmainBundle

これを行う方法はありますか?

4

3 に答える 3

2

私はあなたのような同様の問題に遭遇しました。メイン ホスト アプリには、読み取る必要のある特定の pList があり、分離されているため、watch 拡張機能から読み取ることができませんでした。

だから時計で私はopenParentApplicationメソッドを呼び出しました

メインアプリケーションでは、私のハンドラーは次のようなものでした

-(void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply
{
        NSString *request = [userInfo objectForKey:@"request"];
        if ([request isEqualToString:ReadFile])
        {
              //read the file. and then i like to put it into a NSDictionary
                NSDictionary *responseDictionary = //whatever
                 reply(responseDictionary);
        }
        else{ reply(nil); }
}

そして、openParentApplication のウォッチのコールバック クロージャーでコンテンツが返されました。うまくいくようです。状況は異なる可能性がありますが、その場合、この方法は実行できない可能性があります。

于 2015-04-22T15:54:38.307 に答える
2

ホスト アプリと WatchKit 拡張機能は、私の知る限り、次の 2 つの方法のいずれかでのみファイルを共有できます。

  • 共有アプリ グループ
  • 両方のターゲットにファイルを含める

それらは別々のプロセスで実行され、承認された方法以外では相互にアクセスできません。

于 2015-04-22T12:34:22.050 に答える