Die unter Swift 2 Beispiel gibt diesen Fehler:Wie zeige ich ein Bild aus dem Dokumentenverzeichnis in UIImageView in Swift 3 an?
Value of type String has no member 'stringByAppendingPathComponent'
Was benötige ich für Swift 3 ändern?
Die unter Swift 2 Beispiel gibt diesen Fehler:Wie zeige ich ein Bild aus dem Dokumentenverzeichnis in UIImageView in Swift 3 an?
Value of type String has no member 'stringByAppendingPathComponent'
Was benötige ich für Swift 3 ändern?
Apple versucht, alle aus dem Pfad-als-String-Paradigma zu URL (d. H. file:///path/to/file.text
) zu bewegen. Die Swift API entfernt praktisch alle path
zugunsten von URL
.
Sie können es immer noch finden in Objective-C (NSString
):
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let getImagePath = NSString.path(withComponents: [paths, "fileName"])
Je mehr Swifty Weg:
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = URL(fileURLWithPath: paths).appendingPathComponent("fileName")
schnellen Fehler beim Versuch auf UIImageView zu setzen: " kann den Wert des Typs 'URL' nicht in den erwarteten Argumenttyp 'String' konvertieren "in: myImage.image = UIImage (contentsOfFIle: url) – Arkelyan
Wenn Sie die URL verwenden, rufen Sie die' path' -Eigenschaft auf, um den Pfad als string zu erhalten: ' myImage.image = UIImage (contentsOfFile: imageUrl.path) ' –
genial, dass alle den Trick gemacht haben, danke! – Arkelyan
Ich persönlich mag aus dem App Delegierter dieses Wertes zu bekommen. Setzen Sie diesen Code (steht wie normale Funktion) in AppDelegate.swift.
lazy var applicationDocumentsDirectory: URL = {
let urls = FileManager.default.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)
return urls[urls.count-1]
}()
So in alle Ihre Dateien können Sie es auf diese Weise verwenden:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let imageUrl = appDelegate.applicationDocumentsDirectory.appendingPathComponent("YourFileName")
let imageUrlString = imageUrl.urlString //if String is needed
Fehlerwert vom Typ 'URL' erhalten hat kein Mitglied 'URLString'. Wenn ich das nicht verwende, sondern stattdessen imageUrl, dann bekomme ich "kann nicht konvertieren Wert des Typs 'URL' in den erwarteten Argumenttyp 'String'" in: myImage.image = UIImage (contentsOfFIle: imageUrl) – Arkelyan
Ich vergaß zu erwähnen, dass ich Posted Swift 3-Code geschrieben auf Xcode 8 Beta 6. Es war das erste Mal, dass ein Mitglied URLString verwenden musste, wie das aktualisierte SDK es anfordert. – pedrouan
Art der Fehler in den Körper Ihrer Frage anstelle der Verknüpfung einen Screenshot – Shades