DocumentsDirectory en UITableView Array para Xcode 7 y Swift 2.0
swift2 xcode7.1 (1)
Tengo un proyecto en el que estoy trabajando que crea y guarda archivos PDF localmente en DocumentDirectoy
. He leído aquí sobre cómo ver DocumentDirectory
y filtrarlo para archivos PDF
. Quiero que los archivos de DocumentDirectory
puedan visualizarse en una UITableView
. Sé que tengo que tener una array
para eso. Vi aquí al hacer esto, pero no puedo entender cómo hacer que DocumentDirectory
convierta en una matriz en Swift 2.0 para que se muestre en mi UITableView
. Mis archivos PDF se guardan y se pueden ver en mi UIWebView
.
Mi código para ver mis PDF de DocumentDirectory
es:
func itemsInDirectory() {
// We need just to get the documents folder url
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!
// now lets get the directory contents (including folders)
do {
let directoryContents = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsUrl, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())
print("Items: /(directoryContents)")
} catch let error as NSError {
print(error.localizedDescription)
}
// if you want to filter the directory contents you can do like this:
do {
let directoryUrls = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsUrl, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())
print(directoryUrls)
let PDFFiles = directoryUrls.filter(){ $0.pathExtension == "pdf" }.map{ $0.lastPathComponent }
print("PDF FILES:/n" + PDFFiles.description)
} catch let error as NSError {
print(error.localizedDescription)
}
}
Los imprime cuando lo ejecuto. ¿Alguien puede ayudarme a convertir DocumentDirectory
a una matriz para ver en mi UITableView
? Gracias.
Me lo imaginé. En mi menú principal View Controller
en la sección ViewDidLoad()
agregué:
// Get the documents folder url
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!
// Filter for PDF only
do {
let directoryUrls = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsUrl, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())
let PDFFiles = directoryUrls.filter(){ $0.pathExtension == "pdf" }.map{ $0.lastPathComponent }
// Set TableView array for saved files to DocumentDirectory PDFs
savedPDFFiles = PDFFiles
print(savedPDFFiles)
} catch let error as NSError {
print(error.localizedDescription)
}
En mi otro Table View Controller
, configuré savedPDFFiles
como una Global Variable
. Al cargar mi Table View Controller
, la tabla muestra mis archivos DocumentDirectory
por nombre.