2016-07-17 10 views
12

In Swift 2, ich den folgenden Code verwendet hatte:Typ 'URL' hat kein Mitglied 'fileURL' - Swift 3

let path = NSBundle.mainBundle().pathForResource("Document", ofType: "pdf")! 
let url = NSURL.fileURLWithPath(path) 
webView.loadRequest(NSURLRequest(URL: url)) 
Jetzt

, Xcode 8 und Swift 3, Xcode übersetzt sie automatisch an:

let path = Bundle.main.pathForResource("Translation", ofType: "pdf")! 
let url = URL.fileURL(withPath: path) 
webView.loadRequest(URLRequest(url: url)) 

In der zweiten Zeile, mit der Erklärung von url, gibt Xcode mir folgende Fehlermeldung:

Type 'URL' has no member 'fileURL'

Wie kann ich behebe diesen Fehler? Vielen Dank!

+1

Eigentlich die richtige Syntax für Zeile zwei In Swift 2 ist 'let url = NSURL (fileURLWithPath: path)' (obwohl die Klassenmethode zu funktionieren scheint), deshalb ist die Übersetzung fehlgeschlagen. – vadian

Antwort

19

Die URL Struktur in Swift 3 hat einen Initialisierer für die

let url = URL(fileURLWithPath: path) 
3

Wenn Sie path später nicht verwenden, können Sie so etwas schreiben:

let url = Bundle.main.urlForResource("Translation", withExtension: "pdf") 
+0

Pfadeigenschaft wird immer für Ihre URL verfügbar sein, wenn 'url.isFileURL' wahr ist, überprüfen Sie einfach, ob' url.path' für die Eingabe in FileManager geeignet ist. –

Verwandte Themen