Zdobądź ogromną nagrodę za to pozornie łatwe pytanie, które nie ma znaczenia.Pobierz nazwę pliku obrazu zapisanego na albumie zdjęć
W nowoczesnych iOS (2017),
tutaj rzeczywiście jedynym sposobem wiem aby zapisać obraz na zdjęciach systemem iOS i uzyskać nazwy pliku/ścieżki.
import UIKit
import Photos
func saveTheImage...() {
UIImageWriteToSavedPhotosAlbum(yourUIImage, self,
#selector(Images.image(_:didFinishSavingWithError:contextInfo:)),
nil)
}
func image(_ image: UIImage, didFinishSavingWithError error: NSError?, contextInfo: UnsafeRawPointer) {
guard error == nil else {
print("Couldn't save the image!")
return
}
doGetFileName()
}
func doGetFileName() {
let fo: PHFetchOptions = PHFetchOptions()
fo.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
let r = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: fo)
if let mostRecentThingy = r.firstObject {
PHImageManager.default().requestImageData(
for: mostRecentThingy,
options: PHImageRequestOptions(),
resultHandler: { (imagedata, dataUTI, orientation, info) in
if info!.keys.contains("PHImageFileURLKey") {
let path = info!["PHImageFileURLKey"] as! NSURL
print("Holy cow. The path is \(path)")
}
else { print("bizarre problem") }
})
}
else { print("unimaginable catastrophe") }
}
Istnieją dwa problemy z tym:
1. WTH?!?
2. Nie działa w warunkach wyścigu.
Jest to niezwykle nieporęczne i na wiele sposobów wygląda na nieprzyjemne.
Czy to jest naprawdę droga, dzisiaj?
Czy naprawdę potrzebujesz adresu URL? Czy mógłbyś również użyć właściwości 'localIdentifier' powiązanego' PHObject'? –