Ich benutze einen UITabBarController, um eine Kontaktliste zu erstellen, aber wenn ich versuche, das Array zu speichern, um die Daten beim Neustart der App zu laden gibt mir Probleme, wo die Daten nicht ' t angezeigt. Ich verwende UserDefaults, um die Daten und die Wiederherstellung zu speichern, wenn die App neu gestartet wird.So speichern Sie ein Array in UserDefault
In diesem Code habe ich Daten aus einem Textfeld an das Array namens Liste gesendet.
In diesem Code drucke ich die Daten in einer Tabelle und versuche, es mit Benutzerstandardeinstellungen zu speichern.
import UIKit
var list = [String]()
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if let x = UserDefaults.standard.object(forKey: "SavedValue") as? String {
return (x.count)
}
return (0)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "cell")
if let x = UserDefaults.standard.dictionary(forKey: "SavedValue") as? String {
cell.textLabel?.text = [x[indexPath.row]]
}
return(cell)
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == UITableViewCellEditingStyle.delete {
list.remove(at: indexPath.row)
myTableView.reloadData()
}
}
override func viewDidAppear(_ animated: Bool) {
myTableView.reloadData()
}
@IBOutlet weak var myTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
}
}
Wie deklarieren Sie List-Array in NewContactoViewController? und erklären Sie mehr, wie Sie ViewController kommunizieren? –