Oggi (2016) Apple consiglia sempre di più di utilizzare l'API relativa all'URL di NSURL
, NSFileManager
ecc.
Per ottenere la directory dei documenti in iOS e Swift 2 utilizzare
let documentDirectoryURL = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory,
inDomain: .UserDomainMask,
appropriateForURL: nil,
create: true)
In try!
questo caso è sicuro perché è garantita l'esistenza di questa directory standard.
Quindi aggiungere il componente del percorso appropriato, ad esempio un sqlite
file
let databaseURL = documentDirectoryURL.URLByAppendingPathComponent("MyDataBase.sqlite")
Ora controlla se il file esiste con checkResourceIsReachableAndReturnError
of NSURL
.
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(nil)
Se è necessario l'errore, passare il NSError
puntatore al parametro.
var error : NSError?
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(&error)
if !fileExists { print(error) }
Swift 3+:
let documentDirectoryURL = try! FileManager.default.url(for: .documentDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: true)
let databaseURL = documentDirectoryURL.appendingPathComponent("MyDataBase.sqlite")
checkResourceIsReachable
è contrassegnato come può lanciare
do {
let fileExists = try databaseURL.checkResourceIsReachable()
// handle the boolean result
} catch let error as NSError {
print(error)
}
Per considerare solo il valore di ritorno booleano e ignorare l'errore, utilizzare l'operatore a coalescenza nulla
let fileExists = (try? databaseURL.checkResourceIsReachable()) ?? false