ALAssetRepresentation URL“持久性”生命周期?
Posted
技术标签:
【中文标题】ALAssetRepresentation URL“持久性”生命周期?【英文标题】:ALAssetRepresentation URL 'persistence' lifetime? 【发布时间】:2011-05-18 11:16:50 【问题描述】:快速提问:ALAssetRepresentation URL(其“url”属性)在多长时间内保证指向同一个资产?
documentation describes it as 'persistent' 但这是否意味着在单次同步中持续存在,在添加新照片之前持续存在,在旧照片被删除之前持续存在,还是什么?如果我建立一个数据库,使用它们的 ALAssetRepresentation url 将相机胶卷/照片库中的照片元素与我的应用程序中的数据相关联,那么这些关联是否会永远有效,即使照片被移动或重命名?
【问题讨论】:
好吧,我们开始了。在 ios 4.3 和 iOS 5 之间的切换中,'persistent' assert url 已经从这种格式:assets-library://asset/asset.mp4?id=167&ext=mp4
更改为这种格式:assets-library://asset/asset.mp4?id=F148290E-7262-4D0E-A999-9FE043DB764B&ext=mp4
方便的是,167
和 F148290E-7262-4D0E-A999-9FE043DB764B
之间没有映射,从而破坏了我的应用程序对于任何升级的人。 Niiiiiiiice.
我刚刚遇到了同样的问题。我的应用程序存储了照片的 URL,并且在 5.0 升级后无法使用。您是否找到任何提及此问题的 Apple 文档?
不,我没有。一般来说, ALAssetManager 似乎是他们不希望你使用的某种被忽视的东西......
【参考方案1】:
根据我的观察,如果您从相机胶卷中删除照片/视频,例如 1000000007,假设当前最后一个 id 为 1000000008,则下一个保存的项目不会重复使用该标识符,而是 1000000009。但是,如果最后一个图像被删除(1000000008),它将重新使用该图像。
基本上,它会选择未使用的最高标识符编号,但如果您删除使用少于当前最高标识符的项目,它不会“填充”旧标识符。
这仅适用于相机胶卷中的照片。我不确定其他 ALAssetGroups。
【讨论】:
以上是关于ALAssetRepresentation URL“持久性”生命周期?的主要内容,如果未能解决你的问题,请参考以下文章
从 ALAssetRepresentation 获取“修饰”图像
“PixelHeight”和“PixelWidth”是不是总是出现在 ALAssetRepresentation 元数据中?
如何获取共享照片流 ALAsset 的 ALAssetRepresentation?
正在报告 ALAssetRepresentation 元数据方法的崩溃