Heute (2016) empfiehlt Apple mehr und mehr die URL verwandte API von zu verwenden NSURL
, NSFileManager
usw.
Verwenden Sie zum Abrufen des Dokumentenverzeichnisses in iOS und Swift 2
let documentDirectoryURL = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory,
inDomain: .UserDomainMask,
appropriateForURL: nil,
create: true)
Das try!
ist in diesem Fall sicher, da dieses Standardverzeichnis garantiert existiert.
Fügen Sie dann die entsprechende Pfadkomponente hinzu, z. B. eine sqlite
Datei
let databaseURL = documentDirectoryURL.URLByAppendingPathComponent("MyDataBase.sqlite")
Überprüfen Sie nun, ob die Datei mit checkResourceIsReachableAndReturnError
von existiert NSURL
.
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(nil)
Wenn Sie den Fehler benötigen, übergeben Sie den NSError
Zeiger auf den Parameter.
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
ist markiert als werfen kann
do {
let fileExists = try databaseURL.checkResourceIsReachable()
// handle the boolean result
} catch let error as NSError {
print(error)
}
Verwenden Sie den Operator nil-coalescing, um nur den booleschen Rückgabewert zu berücksichtigen und den Fehler zu ignorieren
let fileExists = (try? databaseURL.checkResourceIsReachable()) ?? false