2015-09-27 15 views
7

yılında uzantısı olmadan dosya adını almak için, aşağıdaki kodu tarafından uzantısı olmadan kısa dosya adı alabilirsiniz:Breaking değişiklik SWIFT1 yılında Swift2

Ben Swift 2 güncellendi iken
self.name = pathFilename.lastPathComponent.stringByDeletingPathExtension 

, bu API artık mevcut değildir. Uyarı mesajı ile NSURL kullanmalıyım. Bu nedenle, yeni kod şu şekilde olacaktır: Çok karmaşık API kırılma değişikliği. Daha basit bir hale getirmenin daha iyi bir yolu var mı?

cevap

18

Neden:

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

Ben bu yüzden bazı orada ! veya ? gerekli eksik olabilir Swift akıcı değilim.

+0

Haklısınız. Teşekkürler. – Howard

4

Swift 2.2 üzerindeki bu çalışma:

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 
}