2016-08-18 13 views

Odpowiedz

5

Apple próbuje przenieść wszystkich z paradygmatu ścieżki do adresu URL (np. file:///path/to/file.text). Interfejs API Swift prawie całkowicie usuwa wszystkie path na korzyść URL.

Nadal można go znaleźć w Objective-C (NSString):

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String 
let getImagePath = NSString.path(withComponents: [paths, "fileName"]) 

Im więcej Swifty sposób:

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String 
let url = URL(fileURLWithPath: paths).appendingPathComponent("fileName") 
+0

szybkiego błąd podczas próby umieszczenia na UIImageView: " nie można przekonwertować wartości typu "URL" na oczekiwany typ argumentu "Ciąg" "w: myImage.image = UIImage (contentsOfFle: url) – Arkelyan

+2

Jeśli zdecydujesz się na użycie URL, wywołaj właściwość' path', aby uzyskać ścieżkę jako ciąg: ' myImage.image = UIImage (contentsOfFle: imageUrl.path) ' –

+0

niesamowite, że wszyscy zrobili lewę, dzięki! – Arkelyan

1

ja osobiście jak się od tej wartości z delegatem App. Umieść ten kod (niezależnie jak normalna funkcja) w AppDelegate.swift.

lazy var applicationDocumentsDirectory: URL = { 
    let urls = FileManager.default.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask) 
    return urls[urls.count-1] 
}() 

Więc we wszystkich plików można użyć go w ten sposób:

let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    let imageUrl = appDelegate.applicationDocumentsDirectory.appendingPathComponent("YourFileName") 
    let imageUrlString = imageUrl.urlString //if String is needed 
+0

uzyskanie wartości błędu typu "URL" nie ma członka "urlString". Jeśli nie używam tego, ale zamiast tego używam imageUrl, otrzymuję "nie mogę przekonwertować wartości typu" URL "na oczekiwany typ argumentu" String "" w: myImage.image = UIImage (contentsOfFle: imageUrl) – Arkelyan

+0

Zapomniałem wspomnieć, że opublikował szybki kod 3 napisany na Xcode 8 Beta 6. To był pierwszy raz, gdy musiałem użyć elementu urlString, jak zaktualizował go SDK. – pedrouan

Powiązane problemy