ich eine Tabellenansicht implementieren, die eine Liste von Dokumenten zeigtNeuordnen von Zeilen in Tableview würde zurückgesetzt auf Standard nach Daten zu aktualisieren
ich mit diesem Code auf Neuordnungs Feature implementieren
var documents = [PDFDocument]()
override func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
let movedObject = self.documents[sourceIndexPath.row]
let fileManager = FileManager.default
documents.remove(at: sourceIndexPath.row)
documents.insert(movedObject, at: destinationIndexPath.row)
NSLog("%@", "\(sourceIndexPath.row) => \(destinationIndexPath.row) \(documents)")
do {
let document = documents[sourceIndexPath.row]
let documentURL = document.documentURL?.absoluteString
let document_Dest = documents[destinationIndexPath.row]
let documentURL_Dest = document_Dest.documentURL?.absoluteString
try fileManager.moveItem(atPath: documentURL!, toPath: documentURL_Dest!)
}
catch let error as NSError {
print("Ooops! Something went wrong: \(error)")
}
// To check for correctness enable: self.tableView.reloadData()
refreshData()
}
private func refreshData() {
let fileManager = FileManager.default
let documentDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
let contents = try! fileManager.contentsOfDirectory(at: documentDirectory, includingPropertiesForKeys: nil, options: .skipsHiddenFiles)
documents = contents.flatMap { PDFDocument(url: $0) }
tableView.reloadData()
}
Es funktioniert vollständig in der Neuordnung, aber das Problem ist, wenn ich die Anwendung schließe und es wieder zu starten (jede Zeitaktualisierungsdatenfunktion läuft), kommt Reihen zu ihren Standardplätzen zurück. während ich die Änderungen in der Neuordnung gespeichert haben muss.
Wirklich wirklich danke für Ihre Sorgfalt. Ich bin komplett neu und verwirrt was genau zu tun ist. Kann ich bitte mehr erklären? Wie kann ich etwas tun, um die Originaldaten aus dem Dokumentenverzeichnis neu zu ordnen? Wenn refresh Daten Funktion läuft dann sollte es keine Auswirkungen auf Liste –
Ich denke, implizit ist es nicht möglich, Dokument Verzeichnis zu sortieren, aber Sie können eine andere Spalte zu Dateien Benennung hinzufügen - Index und wenn Benutzer ändern oder in tableview neu anordnen müssen Sie das gleiche im Index zu aktualisieren Säule. Dann sortieren Sie die Dateien und Sie erhalten das gewünschte Ergebnis. –
ist es möglich, dass Sie meine Codes so bearbeiten, wie Sie es vorschlagen? oder kannst du mir eine Schritt für Schritt Anleitung empfehlen? Vielen Dank. schätzen –