ios - 如何获取 PHAsset 的文件大小?

标签 ios objective-c phasset

假设有一个代表图像的PHAsset。如何获取图片的文件大小?

我看到的唯一方法是将 valueForKey: 与私有(private) ALAssetURL key 一起使用,并检索 ALAssetRepresentation 的大小,但苹果可以拒绝此类应用.

最佳答案

Swift 4/5 解决方案

扩展

extension PHAsset {
    var fileSize: Float {
        get {
            let resource = PHAssetResource.assetResources(for: self)
            let imageSizeByte = resource.first?.value(forKey: "fileSize") as! Float
            let imageSizeMB = imageSizeByte / (1024.0*1024.0)
            return imageSizeMB
        }
    }
}

函数

func getImageFileSize(from asset: PHAsset) -> Float{
    let resource = PHAssetResource.assetResources(for: asset)
    let imageSizeByte = resource.first?.value(forKey: "fileSize") as! Float
    let imageSizeMB = imageSizeByte / (1024.0*1024.0)
    return imageSizeMB
}

关于ios - 如何获取 PHAsset 的文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33821118/

相关文章:

ios - Xcode UIScrollView 布局 - 设置水平内容大小并水平调整 subview 大小

ios - 使用 pod install 后出现 Swift 错误(clang : error: linker command failed with exit code 1 )

iOS 8 UITableView 分隔符插入 0 不起作用

objective-c - 获得前导零的时间

ios - 如何使用 PHAsset 在 iOS 8 中获取图像或视频的 MIME 类型?

ios - 将元数据应用于图像会导致 performChanges 请求失败

ios - 获取保存到照片库的图像的 PHAsset/localIdentifier

ios - 如何在 ios 中保持套接字事件?

objective-c - 即时通讯API

ios - ABAddressBookSave 导致 EXC_BAD_ACCESS ARC 已启用