Как сохранить данные в UITableview с основными данными - код Swift - PullRequest
0 голосов
/ 19 октября 2018

Мне интересно, может ли кто-нибудь показать мне, как сохранить данные в табличном представлении с основными данными?

У меня есть приложение, которое требуется для хранения большого количества пользовательского ввода в табличном представлении.Я использовал UserDefault, что я не должен.Я еще не импортировал данные ядра, потому что я не знаю, как использовать их для хранения данных из пользовательского ввода и извлечения данных из данных ядра, чтобы отобразить их в виде таблицы.

Я сохранил пользовательский ввод в массивчто logs.

var logs = [String]()
var userData = false

@IBOutlet weak var TableLogs: UITableView!
@IBAction func save(_ sender: Any) {
     let a = (StartKm.text! as NSString).intValue
     let b = (StartKm.text! as NSString).floatValue
     let sum = a * 2
     let sumb = b * 2

    overallTrip.text = "\(sum)"
    overallTrip.text = "\(sumb)"


   let encodedData = NSKeyedArchiver.archivedData(withRootObject: userData)
    userData = true
    UserDefaults.standard.set(encodedData, forKey: "userData")

    if StartKm.text == "" {
        StartKm.backgroundColor = UIColor.red
    }else{
         StartKm.backgroundColor = UIColor.white
         logs.append(overallTrip.text!)
        UserDefaults.standard.set(overallTrip.text, forKey: "overall")
        UserDefaults.standard.synchronize()
        }

    let myAlert = UIAlertController(title:"FYI", message:"You have \(5000 - sumb)KM left", preferredStyle: UIAlertControllerStyle.alert)



internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: nil)

    cell.textLabel?.text = logs[indexPath.row]

    return cell
}


func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath){
    if editingStyle == UITableViewCellEditingStyle.delete {
        logs.remove(at: indexPath.row)
        UserDefaults.standard.set(logs, forKey: "overall")
    }
    TableLogs.reloadData()
}


func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {


    if(segue.identifier == "CarKmd") {
 //     var vc = segue.destination as! CarKm
        let viewcontroller = storyboard?.instantiateViewController(withIdentifier: "CarKmd")

        self.navigationController?.pushViewController(viewcontroller!, animated: true)
    }
}

}

...