WatchKit 拡張機能を作成していて、ホスト アプリケーションの[NSBundle mainBundle]
. 私は試しまし[NSBundle bundleWithIdentifier:]
たが、それはただ返されますnil
。
いくつかの潜在的な回避策がありますが、「ホストから必要なものを読み取るだけ」ほど単純なものはありませんmainBundle
。
これを行う方法はありますか?
WatchKit 拡張機能を作成していて、ホスト アプリケーションの[NSBundle mainBundle]
. 私は試しまし[NSBundle bundleWithIdentifier:]
たが、それはただ返されますnil
。
いくつかの潜在的な回避策がありますが、「ホストから必要なものを読み取るだけ」ほど単純なものはありませんmainBundle
。
これを行う方法はありますか?
私はあなたのような同様の問題に遭遇しました。メイン ホスト アプリには、読み取る必要のある特定の 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 のウォッチのコールバック クロージャーでコンテンツが返されました。うまくいくようです。状況は異なる可能性がありますが、その場合、この方法は実行できない可能性があります。
ホスト アプリと WatchKit 拡張機能は、私の知る限り、次の 2 つの方法のいずれかでのみファイルを共有できます。
それらは別々のプロセスで実行され、承認された方法以外では相互にアクセスできません。