2015-09-27 21 views
7

In Swift1, siamo in grado di ottenere il file nome corto senza estensione dal seguente codice:rottura cambiamento per ottenere il nome del file senza estensione in Swift2

self.name = pathFilename.lastPathComponent.stringByDeletingPathExtension 

Mentre ho aggiornato a Swift 2, questa API non è più disponibile. Con il messaggio di avviso, devo usare NSURL. Quindi il nuovo codice sarà:

var filename = NSURL(fileURLWithPath: str).lastPathComponent 
filename = NSURL(fileURLWithPath: filename!).URLByDeletingPathExtension?.relativePath 

È troppo complicato il cambio di API. C'è un modo migliore per renderlo più semplice?

risposta

18

Perché non:

self.name = NSURL(fileURLWithPath: str).URLByDeletingPathExtension?.lastPathComponent 

Io non sono fluente in Swift quindi ci può essere qualche mancanti ! o ? necessari in là.

+0

Hai ragione. Grazie. – Howard

4

Questo lavoro sul Swift 2.2:

let nameOnly = (fileName as NSString).stringByDeletingPathExtension 
let fileExt = (fileName as NSString).pathExtension 
1

Swift 4

let url = URL(string: "https://example.com/myFile.html") 
if let fileName = url?.deletingPathExtension().lastPathComponent { 
    // fileName: myFile 
    self.name = fileName 
}