В настоящее время (2016 г.) Apple все больше и больше рекомендует использовать API, связанные с URL NSURL
, NSFileManager
и т. Д.
Чтобы получить каталог документов в iOS и Swift 2, используйте
let documentDirectoryURL = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory,
inDomain: .UserDomainMask,
appropriateForURL: nil,
create: true)
В try!
этом случае это безопасно, потому что этот стандартный каталог гарантированно существует.
Затем добавьте соответствующий компонент пути, например sqlite
файл
let databaseURL = documentDirectoryURL.URLByAppendingPathComponent("MyDataBase.sqlite")
Теперь проверьте, существует ли файл с checkResourceIsReachableAndReturnError
оф NSURL
.
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(nil)
Если вам нужна ошибка, передайте NSError
указатель на параметр.
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
помечено как можно бросить
do {
let fileExists = try databaseURL.checkResourceIsReachable()
// handle the boolean result
} catch let error as NSError {
print(error)
}
Чтобы учитывать только логическое возвращаемое значение и игнорировать ошибку, используйте оператор nil-coalescing
let fileExists = (try? databaseURL.checkResourceIsReachable()) ?? false