11

アプリでは、3 つの言語のうちどの言語を使用するかを設定で選択できます。何も選択されていない場合、iPhone の言語が検出され、英語、フランス語、またはドイツ語が選択されます。この言語のいずれも iPhone の言語でない場合は、英語が使用されるように設定されています。設定で言語を手動で変更すると、正常に機能します。今、ほぼうまく機能する今日の拡張機能を追加しましたが、設定バンドルにアクセスして、言語の NSUserDefaults を取得する必要があります (手動で変更した場合)。両方のターゲットで、App-Groups をアクティブ化しました

group.com.companyname.appname

そしてそれを選択しました。

アプリで私は言語を取得します

NSString *manualLanguageSet = [[NSUserDefaults standardUserDefaults] valueForKey:SPRACHWAHL];

そして今日の拡張機能では、次の方法で取得しようとしています。

NSString *manualLanguageSet = [[[NSUserDefaults alloc] initWithSuiteName:@"group.com.companyname.appname"] valueForKey:SPRACHWAHL];

today-extension を実行すると、NSLog(@"Settings-Sprache: %@", manualLanguageSet);結果は次のようになります (設定でどの言語が選択されているかは関係ありません)。

2014-09-13 16:48:36.331 HdB 今日 [3734:284836] 設定-Sprache: (null)

どうすれば正しいですか / 設定 (settings.bundle) にアクセスするにはどうすればよいですか?

4

2 に答える 2

3

WatchKit 設定バンドルを作成すると、キーも含まれます

ApplicationGroupContainerIdentifier

バンドルの Root.plist のディクショナリのルート レベルで、値はグループ識別子 (suitName として NSUserDefaults に提供するもの) です。

このキーは、iOS 設定バンドルでも使用できることがわかりました。追加された場合、設定はそれぞれのコンテナに移動します。

iOS 設定アプリ、iPhone アプリ、および WatchKit 拡張機能全体で、これが iOS 8.3 で動作することを確認しました。

更新: Apple は、このキーを iOS 8.2 以降でサポートされているものとしてリストしてい ます。

于 2015-06-24T14:27:23.060 に答える