2015-09-27 20 views
7

Trong SWIFT1, chúng tôi có thể nhận được tập tin tên ngắn không dài bằng đoạn mã sau:thay đổi Breaking để có được tên tập tin mà không cần mở rộng trong Swift2

self.name = pathFilename.lastPathComponent.stringByDeletingPathExtension 

Trong khi tôi cập nhật để Swift 2, API này không có sẵn nữa. Với thông điệp cảnh báo, tôi phải sử dụng NSURL. Vì vậy, mã mới sẽ là:

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

Đó là sự thay đổi phá vỡ API quá phức tạp. Có cách nào tốt hơn có thể làm cho nó đơn giản hơn không?

Trả lời

18

Tại sao không:

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

Tôi không thông thạo Swift do đó có thể có một số mất tích ! hoặc ? cần thiết trong đó.

+0

Bạn nói đúng. Cảm ơn. – Howard

4

Công việc này trên 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 
} 
Các vấn đề liên quan