今日のウィジェットを作成していて、私はUserDefaults(suiteName:)
を使ってデータを保持しています。主なアプリケーションで私はUserDefaults.standard()
を使用しています。これは私がsuiteName:
コンストラクタを使用している理由である拡張機能によって読み取られることはできません(または可能ですか?)。拡張機能間でUserDefaultsを共有
メインアプリケーションのユーザーがUserDefaults.standard()
のままでいるデータは、拡張機能で利用できる必要があります。値が
UserDefaults.standard().set:...forKey:...
UserDefaults(suiteName:...)().set:...forKey:...
...
質問を共有することができるように、私は両方を持続しています。このとき
は、私はすべて一緒UserDefaults.standard()
をドロップすると、ちょうど私のアプリケーションで
UserDefaults(suiteName:)
を使用すべきである、またはこの悪い習慣で、もしそうであればどうして?
編集:私はAppグループコンテナを使用しています。わかりやすくするために、私はstandard()をsuiteNameに置き換えるべきか質問しています:私のプロジェクト全体を通して?
拡張子とアプリケーションの間でリソースを共有したい場合は、最良の方法です( '-suiteName:')またはデフォルトの 'FileManager'(' -forSecurityApplicationGroupIdentifier: ')でのみ使用する_AppGroup_を作成し、標準のユーザーデフォルトまたはファイルマネージャーを必要としません。より長いです (ただし、拡張機能からデータを分離する必要がある場合は、引き続きそのサンドボックスを使用できます)。 – holex
ありがとうございました – RyanTCB