Dikkat çekmeyen bu kolay soruyla büyük bir ödül elde edin. Modern iOS (2017) yılında Fotoğraf albümüne kaydedilen görüntünün dosya ismini alın
,burada aslında iOS fotoğraf sisteme bir görüntü kaydetmek ve dosya adı/yolu almak için ben bildiğim tek yolu bu.
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") }
}
bu iki sorun vardır:
1. WTH?!?
2. Yarış pisti koşullarında arızalanır.
Bu inanılmaz bir şekilde göz kamaştırıcı ve bir çok açıdan endişeli görünüyor.
Gerçekten gitmenin yolu bu mu?
Gerçekten URL'ye ihtiyacınız var mı? İlgili "PHObject" in "localIdentifier" özelliğini de kullanabilir misiniz? –