[英]UserDefaults not loading first time
我有兩步登錄過程。 在第一個屏幕上,我將FB用戶的詳細信息保存到UserDefaults。
當我加載第二個ViewController時,應該加載用戶的個人資料圖片和用戶名(我使用“ fullname ”創建)。 它實際上在我第二次加載用戶時有效,但從不第一次加載,是否存在某種延遲? 我已經嘗試過UserDefaults.standard.synchronize()
但是沒有任何作用。 它甚至可以打印細節,所以我知道它可以工作...
let userName = fullName.replacingOccurrences(of: " ", with: "_")
UserDefaults.standard.setValue(userName, forKey: "username")
if let picture = result["picture"] as? NSDictionary , let data = picture["data"] as? NSDictionary, let url = data["url"] as? String {
UserDefaults.standard.setValue(url, forKey: "userFBPicURL")
let username = UserDefaults.standard.value(forKey: "username") as? String
let profileImage = UserDefaults.standard.value(forKey: "userFBPicURL") as? String
UserDefaults.standard.synchronize()
print ("Details are User:",username, "profileImage:",profileImage)
並在self.performSegue(withIdentifier: "UsernameSegue", sender: self)
之后的新VC中:
override func viewDidLoad() {
super.viewDidLoad()
if let username = UserDefaults.standard.value(forKey: "username") as? String {usernameTextfield.text = username}
if FBSDKAccessToken.current() != nil {loadFacebookProfileImage()}
}
我認為你正在執行賽格瑞之后或者viewDidLoad中被調用的值設置為UserDefaults。
嘗試查找問題的步驟:
defaults
后,立即嘗試從defaults
打印。 問題:您在哪里將值設置為默認值?
PS:同樣,我不會為此使用UserDefaults,但是是的,這是一個不同的問題。
抱歉,由於您需要更多調試信息/代碼,因此無法提供確切的解決方案。 請嘗試上面的選項。 希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.