Prima iOS9, ci aveva creato una directory in questo modoFile iOS9 Swift Creazione NSFileManager.createDirectoryAtPath con NSURL
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
let logsPath = documentsPath.stringByAppendingPathComponent("logs")
let errorPointer = NSErrorPointer()
NSFileManager.defaultManager().createDirectoryAtPath(logsPath, withIntermediateDirectories: true, attributes: nil, error: errorPointer)
Ma con iOS9 hanno tolto String.stringByAppendingPathComponent. Lo strumento di conversione automatica ha sostituito il nostro uso di String con NSURL. createDirectoryAtPath() prende una stringa, quindi ho bisogno di convertire NSURL in una stringa. Abbiamo usato AbsolutePath in questo modo: (aggiornamento per iOS9)
let documentsPath = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0])
let logsPath = documentsPath.URLByAppendingPathComponent("logs")
do {
try NSFileManager.defaultManager().createDirectoryAtPath(logsPath.absoluteString, withIntermediateDirectories: true, attributes: nil)
} catch let error as NSError {
NSLog("Unable to create directory \(error.debugDescription)")
}
Ma sto ottenendo il seguente errore:
Unable to create directory Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “logs” in the folder “Documents”." UserInfo={NSFilePath=file:///var/mobile/Containers/Data/Application/F2EF2D4F-94AF-4BF2-AF9E-D0ECBC8637E7/Documents/logs/, NSUnderlyingError=0x15664d070 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
funziona in iOS 9.2 – Roger
** relativoPath ** è il vincitore. Avevo .absoluteString ma sembra che sia obsoleto da tempo. –