iOS AssetLibrary 存储指针

标签 ios memory image-scaling assetslibrary

我有一个关于在 iOS 上使用 AssetLibrary 的问题。是否可以在您的应用程序中存储指向图像的指针而不是实际图像?假设我想创建一个播放列表,但我不想存储实际图像。

我问的原因是我发现当我使用图像选择器时,我可以将图像保存到设备文档目录,但是一旦我达到 25 左右,它开始减慢设备(iPad 1 ).如果图像非常大,我会按比例缩小图像,我多次检查泄漏仪器,没有泄漏。我不知道下一步该去哪里,所以我想研究一下替代方案。正如我所见,我无处可以释放内存。

这就是我现在所处的位置,我很好奇 AssetLibrary 是否可能是一个选项,因为我不会存储物理图像。我知道它有一些缺点(需要用户位置,循环浏览图像时可能会有点慢)

对此有任何想法将不胜感激。

最佳答案

将 25 张图像存储到文档目录中不会降低设备速度,除非您尝试同时将所有 25 张非常大的图像加载到内存中。

您不能永久存储指向 Assets 库 Assets 的指针,但您可以存储从 ALAssetRepresentation 的 url 属性检索到的 URL,然后使用 ALAssetsLibrary 的 assetForURL:resultBlock:failureBlock: 稍后取回相应的 ALAsset。请注意,用户有可能从您的程序外部删除 Assets ,即使您的应用程序处于后台,因此如果您卡在 ALAsset 上,您必须监听 ALAssetsLibraryChangedNotification 以了解何时重新加载 Assets 。

关于iOS AssetLibrary 存储指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449835/

相关文章:

java - 如何从 RAM 内存中存储和加载类?

jquery - 使用 JQUERY 自动调整图像大小/缩放

algorithm - 缩放图像以完全填充边界框

ios - 为什么没有 NSShort 或 NSByte?

iphone - 关于以编程方式访问 ios 设置

ios - Firebase、Swift : Conflicting nullability specifier on return types, 'nullable' 与现有说明符 'nonnull' 冲突

ios - 刷新时的 UIWebView 网站向下移动 - Swift

c++ - 如何确定 MSVC C++ 中的内存分配?

c++ - vector <X*> vec 与 vector <X>* vec

opengl,纹理总是相同的大小