ios - 没有 PHAsset 是否可以将照片存储在 iPhone 上?

标签 ios iphone swift photos phasset

是否可以在不使用 PHAsset 的情况下获取存储在 iPhone 上的照片?

这是因为使用 PHAsset 迫使我使用这种方法:

PHImageManager.defaultManager().requestImageForAsset( ... )

而且这个方法需要时间来执行。

我只想直接从存储图像的文件夹中获取图像。

最佳答案

无法直接访问这些文件,因为它们不在您的应用程序的沙盒中。 什么需要时间,当你使用该方法时

PHImageManager.defaultManager().requestImageForAsset( ... )

是文件被加载到内存中并解码为 UIImage。 为避免这种情况,请查看方法

PHImageManager.defaultManager(). requestImageDataForAsset( ... )

此方法将文件加载为 NSData。

注意:如果您想构建一个照片应用程序,用户可以在其中滑动照片,最佳策略可能如下所示。

  1. 预加载用户可能加载的图片(例如,当前显示的图片之前和之后的一张照片) 使用 PHCachingImageManager
  2. 当用户滑动到实际图片使用时

    PHImageManager.defaultManager().requestImageForAsset( ... )

由于图像是预加载的,这应该快得多

另一种方法是先加载较小的缩略图,然后延迟加载全屏图像。

关于ios - 没有 PHAsset 是否可以将照片存储在 iPhone 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32441085/

相关文章:

ios - 检测已取消的 iTunes 登录警报以进行应用内购买

ios - uitableview ios : sorting array based on calculated distance not part of the array

iphone - iOS 应用程序上的 Facebook 登录

iphone - 客户向我发送了他的分发证书和私钥,以便我可以推送到应用商店,但它们不与自身关联

iphone - MPMoviePlayerController 不想工作

ios - 创建生命周期唯一 ID 的替代方法

iphone - 使用 MPMoviePlayerController 从 URL 播放视频时,视频在几秒钟后停止,控制台中出现错误

Xcode 9 中的 Swift 4 - 如何轻量级迁移 Core Data?

ios - Swift - UITableView 中的标题 block 按钮交互

ios - cellForRowAt indexPath 中 Realm 对象的 UITableView 性能