2015-11-23 4 views

risposta

16

È possibile separare il vostro URL in due parti. Figura qui di seguito

let str : NSString = "www.music.com/Passion/PassionAwakening.mp3" 
    let path : NSString = str.stringByDeletingLastPathComponent 
    let ext : NSString = str.lastPathComponent 

    print(path) 
    print(ext) 

uscita

www.music.com/Passion 
PassionAwakening.mp3 

Per maggiori informazioni si prega di dare un'occhiata

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/Articles/ManipulatingPaths.html

+1

Si noti che questo metodo funziona solo con i percorsi di file (non, ad esempio, rappresentazioni di stringa di URL). – user3441734

+0

Cosa intendi per rappresentazione a stringa? –

+0

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instp/NSString/stringByDeletingLastPathComponent – user3441734

4
let str = "11/Passion/01PassionAwakening.mp3" 
if !str.isEmpty { 
    let components = str.characters.split("/") 
    let head = components.dropLast(1).map(String.init).joinWithSeparator("/") 
    let tail = components.dropFirst(components.count-1).map(String.init)[0] 

    print("head:",head,"tail:", tail) // head: 11/Passion tail: 01PassionAwakening.mp3 
} else { 
    print("path should not be an empty string!") 
} 
+0

Swift 3.0.1 richiede la sintassi: split (separator: "/") – clearlight

4

Swift 3.0 versione

if !str.isEmpty { 
     let components = str.characters.split(separator: "/") 
     let head = components.dropLast(1).map(String.init).joined(separator: "/") 
     let words = components.count-1 
     let tail = components.dropFirst(words).map(String.init)[0] 

     print("head:",head,"tail:", tail) // head: 11/Passion tail: 01PassionAwakening.mp3 
    } else { 
     print("path should not be an empty string!") 
    } 
5

Questo funziona per Swift 3.0 così:

let fileName = NSString(string: "11/Passion/01PassionAwakening.mp3").lastPathComponent 
4

si dovrebbe davvero fare a meno eredità NS classi Objective-C e manuale stringa di percorso scissione, ove possibile. Utilizzare URL invece:

let url = URL(fileURLWithPath: "a/b/c.dat") 
let path = url.deletingLastPathComponent().relativePath // 'a/b' 
let file = url.lastPathComponent // 'c.dat' 
Problemi correlati