Ich erhalte den Bildnamen nicht aus der Fotobibliothek. Kennt hier jemand einen richtigen Weg, um Bildnamen zu bekommen?
Hinweis: PHAsset.fetchAssets(withALAssetURLs: [imageURL], options: nil)
Dies ist veraltet.
Nur schnell
Vielen Dank
Ich habe einen Weg gefunden
if let asset = info["UIImagePickerControllerPHAsset"] as? PHAsset{
if let fileName = asset.value(forKey: "filename") as? String{
print(fileName)
}
}
Dadurch erhalten Sie den tatsächlichen Dateinamen in der Fotobibliothek.
Meinen Sie den Namen der Bilddatei? Wenn ja, sollte dies Ihnen helfen. In Ihrem UIImagePickerControllerDelegate:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
guard let fileUrl = info[UIImagePickerControllerImageURL] as? URL else { return }
print(fileUrl.lastPathComponent)
}
Versuchen Sie es mit dem folgenden Code
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let asset = info[UIImagePickerControllerPHAsset] as? PHAsset {
if let fileName = (asset.value(forKey: "filename")) as? String {
print(\(fileName))
}
}
// Other Stuff
}
Probieren Sie mal das hier an.
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let asset = info[UIImagePickerControllerPHAsset] as? PHAsset {
let assetResources = PHAssetResource.assetResources(for: asset)
print(assetResources.first!.originalFilename)
}
dismiss(animated: true, completion: nil)
}
UIImagePickerControllerPHAsset
ist nil
, wenn Sie keine Zugriffsberechtigung für die Fotobibliothek haben. Das Betriebssystem fragt nicht automatisch und gibt Ihnen trotzdem Zugriff auf die Datei (ich habe keine Ahnung, was die Logik dahinter steckt!), Aber das PHAsset ist das Info-Wörterbuch wird gleich Null sein!