之間創建一個小部件今天,我用UserDefaults(suiteName:)
堅持一些數據。在主應用程序中,我使用的是UserDefaults.standard()
。這不能被讀取(或可以嗎?)的擴展,這就是爲什麼我使用suiteName:
構造函數。共享UserDefaults擴展
數據用戶堅持到UserDefaults.standard()
在主應用程序需要在擴展可用。
在這個時候,我堅持到兩個,這樣的值可以共享
UserDefaults.standard().set:...forKey:...
UserDefaults(suiteName:...)().set:...forKey:...
...
的問題是我應該放棄UserDefaults.standard()
一起,只需使用UserDefaults(suiteName:)
在我的應用程序,或者這是不好的做法,如果是爲什麼?
編輯:我使用的應用程序組容器。澄清我問我應該只是用suiteName替換standard():在我的項目中?
,最好的方法是創建_App組_並僅使用共享的'UserDefault'(通過'-suiteName:')或默認的'FileManager'(通過'-forSecurityApplicationGroupIdentifier:') - 您可能不需要標準的用戶默認設置或文件管理器長(但是如果你需要確保你想從擴展中分離數據,你仍然可以使用這些沙箱)。 – holex
感謝這幫忙 – RyanTCB