pathExtension nicht verfügbar ist: Verwendung pathExtension auf NSURL statt. Swift 2.0
Bekomme ich mp3-Dateien aus dem Verzeichnis Dokumente, die ich schrieb, dass pathExtension gleich "mp3", in der Swift 1.2 ist es Arbeit, aber in der Swift-2.0 bekomme ich die Fehlermeldung " 'pathExtension' nicht verfügbar ist: Verwendung pathExtension auf NSURL statt."
func fetchFilesFromFolder() {
let fileManager = NSFileManager.defaultManager()
let folderPathURL = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)[0]
if let directoryURLs = try? fileManager.contentsOfDirectoryAtURL(folderPathURL, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions.SkipsHiddenFiles) {
listOfMP3Files = directoryURLs.map(){ $0.lastPathComponent! }.filter(){ $0.pathExtension == "mp3" } //error is here
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur die Reihenfolge ändern: zuerst
filter
, alsmap
. Nun die MethodepathExtension
angewendet wird, um die NSURL-Objekte.Können Sie weglassen, die paar Klammern nach
filter
undmap
mit dertrailing closure
Regel.Apple entfernt hat, den Pfad related API von
String
zu bevorzugen, die mehr geeignetURL
.Oder Sie können mit dieser Erweiterung:
extension String { public var url: NSURL { return NSURL(fileURLWithPath:self) } public var stringByDeletingLastPathComponent: String { return String(url.URLByDeletingLastPathComponent) } }
Basis dieser link, diese Erweiterung wird Ihnen helfen, in vielen Fällen.
Xcode 8.3.2 • Swift 3.1
Kombinierte ich Dharmesh und Leo ' s Ansätze, um meine Erweiterung zu arbeiten:
Swift-Doc-1.2-Spezifikationen in Bezug auf diese funcs nicht zurückkehren, optional
Zu machen, abwärtskompatibel zu 1.2 Swift 2.0, dies zu tun:
Verbessern @Dharmesh Kheni 's version.