2016-07-08 7 views

ответ

3

Вы можете использовать NSURL безопасно изолировать имя файла, то использовать подстроку, чтобы получить часть, которую вы хотите.

let s = "https://storage.googleapis.com/user_avatars/63/img_-qLgH80SBqNhMRYbDQeccg.jpg" 

Свифта 2

if let url = NSURL(string: s), 
    withoutExt = url.URLByDeletingPathExtension, 
    name = withoutExt.lastPathComponent { 
    let result = name.substringFromIndex(name.startIndex.advancedBy(5)) 
    print(result) 
} 

Свифта 3

if let url = URL(string: s), 
    withoutExt = try? url.deletingPathExtension(), 
    name = withoutExt.lastPathComponent { 
    let result = name.substring(from: name.index(name.startIndex, offsetBy: 5)) 
    print(result) 
} 

Свифта 4

if let url = URL(string: s) { 
    let withoutExt = url.deletingPathExtension() 
    let name = withoutExt.lastPathComponent 
    let result = name.substring(from: name.index(name.startIndex, offsetBy: 5)) 
    print(result) 
} 

Печать:

qLgH80SBqNhMRYbDQeccg

+0

Спасибо за помощь. Это сработало – Coder

0

Что о чем-то, что использует NSURLComponents разбить URL:

func parseURLForFileName(url:String) ->String? 
{ 
    let components = NSURLComponents(string: url) 
    if let path:NSString = components?.path 
    { 
     let filename = path.lastPathComponent 
     if let range = filename.rangeOfString("_-") 
     { 
      return filename.substringFromIndex(range.endIndex) 
     } 
    } 
    return nil 
} 

Вы бы тогда называть это так:

let name = parseURLForFileName("https://storage.googleapis.com/user_avatars/63/img_-qLgH80SBqNhMRYbDQeccg.jpg") 
    print(name) 
+0

Спасибо за ответ. – Coder