2016-12-16 174 views
1

我試圖將數組保存到UserDefaults,但運行應用程序後顯示此Error。當應用程序崩潰時,Xcode顯示數組的正確值,所以數據很好地保存到數組中。 我字符串數據保存到數組中的第一個VC:Swift 3用UserDefaults保存數組

Last20Times.insert(dsa, at: 0) // Last20Times is the array. 
if Last20Times.count > 0 { 
    let defaults = UserDefaults.standard 
    defaults.set(Last20Times, forKey: "last20") 

第二個控制器的TableView:

if indexPath.section == 1 { 
    let ArrayLast20 = UserDefaults.standard.stringArray(forKey: "last20") 
    cell.textLabel?.text = ArrayLast20?[indexPath.row]// error(picture) 
} 

return cell 

謝謝

+0

錯誤發生在哪一行上?控制檯中顯示的是什麼? – Sweeper

+2

你不會認真地從'cellForRow'中的用戶默認值中獲取數據,不是嗎?用戶默認值不應該用於保存臨時數據。通過segue或協議/代理或塊傳遞數據。 – vadian

+1

@vadian這是一個遊戲的一部分,我將他的最後20個結果保存到Tableviewcontroller –

回答

-1

您需要將UserDefaults保存爲這樣:

​​

。 。 。

+1

您實際上沒有。 – vadian

+0

@vadian可以詳細說明嗎?如何在不同步的情況下保存userdefaults? – Fluidity

+2

從文檔:*因爲此方法是定期自動調用的,所以只有當您不能等待自動同步(例如,如果您的應用程序即將退出)或者您想要將用戶默認更新爲即使未進行任何更改,磁盤上的內容也是如此。* – vadian