Création d'un widget Aujourd'hui et j'utilise UserDefaults(suiteName:)
pour conserver certaines données. Dans l'application principale, j'utilise UserDefaults.standard()
. Cela ne peut pas être lu (ou peut-il?) Par l'extension qui est pourquoi j'utilise le constructeur suiteName:
.Partage de UserDefaults entre les extensions
Les données que l'utilisateur conserve à UserDefaults.standard()
dans l'application principale doivent être disponibles dans l'extension.
A cette époque, je suis persistant à la fois pour que les valeurs peuvent être partagées
UserDefaults.standard().set:...forKey:...
UserDefaults(suiteName:...)().set:...forKey:...
...
La question est dois-je déposer UserDefaults.standard()
tous ensemble et il suffit d'utiliser UserDefaults(suiteName:)
dans ma demande, ou est cette mauvaise pratique, et si oui Pourquoi?
Modifier: J'utilise un conteneur de groupe d'applications. Pour clarifier, je demande si je dois juste remplacer standard() par suiteName: tout au long de mon projet?
si vous souhaitez partager des ressources entre l'extension et l'application, la meilleure façon est pour créer un _App Group_ et utiliser le 'UserDefault 'partagé (par' -suiteName: ') ou le' FileManager' par défaut (par '-forSecurityApplicationGroupIdentifier:') seulement - vous n'avez pas besoin des standards par défaut ou du gestionnaire de fichiers plus long (mais si vous devez être sûr que vous voulez isoler les données de l'extension, vous pouvez toujours utiliser ces sandbox). – holex
Merci cela aidé – RyanTCB