2017-04-17 57 views
0
  1. 我有一個模型
  2. 我想我的模型的值傳遞給其他類
  3. 我userDefault設置,但得到的錯誤「線程1信號SIGABRT」集UserDefaultValue斯威夫特3錯誤

    Alamofire.request("http://mylink.com/login", method: .post, parameters: parameters, encoding: JSONEncoding.default).responseObject { (response: DataResponse<LoginResponse>) 
        in 
        let loginResponse: AnyObject = response.result.value! 
    
    
        UserDefaults.standard.setValue(loginResponse, forKey: "resultLogin") 
    
    
    
    } 
    

所以我想問問怎麼我的模型值設置爲用戶默認

+1

檢查您的loginResponse。可能是你的模型包含任何鍵的零值。我有同樣的問題,並發現我的一個關鍵的價值是零。 –

+0

確切的代碼行導致錯誤? – rmaddy

+0

@rmaddy UserDefaults.standard.setValue(loginResponse,forKey:「resultLogin」) –

回答

2

轉換登錄迴應數據,然後保存至UserDefaults。否則,您也可以在將響應轉換爲Data後使用NSKeyedArchiever。請參閱此SO Post

0

要將值或對象存儲在用戶默認值中,該值或對象必須是NSCoding投訴。在這裏你設置用戶默認的AnyObject類型的值。 要做到這一點,請創建一個模型並實施NSCoding。