1

I am trying to persist bar chart values using UserDefaults so that every time the app is invoked it doesn't show blank chart.

let defaults = UserDefaults.standard        
    let dataSet = BarChartDataSet(values: [entry1, entry2, entry3, entry4], label: "Widgets Type")   
    let data = BarChartData(dataSets: [dataSet])  
    let encodedData = NSKeyedArchiver.archivedData(withRootObject: data)

    defaults.set(encodedData, forKey: "encoded data")
    defaults.synchronize()

    if let decodedData = defaults.object(forKey: "encoded data") as? Data {
        let data = NSKeyedUnarchiver.unarchiveObject(with: decodedData )
        barChart.data = data as? ChartData

But when I run my app I get the following error message

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Charts.BarChartData encodeWithCoder:]: unrecognized selector sent to instance
eyllanesc
  • 235,170
  • 19
  • 170
  • 241
dpathik
  • 11
  • 2

0 Answers0