ios - 如何使用照片框架获取引用网址的文件名?

标签 ios swift photosframework

这就是我获取 NSURL 的方式:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

    if let referenceUrl = info[UIImagePickerControllerReferenceURL] as? NSURL {
        //access the file name
    }
}

它正在使用 ALAssetsLibrary:

let assetsLibrary = ALAssetsLibrary()
assetsLibrary.assetForURL(referenceUrl, resultBlock: { asset in

    let filename = asset.defaultRepresentation().filename()

}, failureBlock: nil)

自 iOS 9 起它已被弃用

最佳答案

最简单的答案:

if let asset = PHAsset.fetchAssetsWithALAssetURLs([referenceUrl], options: nil).firstObject as? PHAsset {

    PHImageManager.defaultManager().requestImageDataForAsset(asset, options: nil, resultHandler: { _, _, _, info in

        if let fileName = (info?["PHImageFileURLKey"] as? NSURL)?.lastPathComponent { 
            //do sth with file name
        }
    })
}

关于ios - 如何使用照片框架获取引用网址的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37522327/

相关文章:

ios - 在 iOS 10 中使用新键盘点击声音的官方方式

ios自定义类初始化不工作

ios - 如何通过 nsuserdefaults 在 swift 中存储 CBPeripheral 等自定义数据?

swift - 使用照片框架删除相机胶卷 Assets

c# - 从 PageRenderer 隐藏 iOS 中的状态栏

objective-c - 有什么办法可以在windows下写iOS代码吗?

swift - 仅将特定类型作为参数传递给函数

ios - 我需要两个 TableViewController 吗?

ios - 如何像 ALAssetsLibrary 一样使用 PHPhotoLibrary

ios - 使用照片框架从图库上传视频