iOS写入资产库观察

时间:2011-05-13 02:33:28

标签: alasset

我正在尝试编写一个从资产库中读取图像的应用程序,修改图像的GPS数据并将其写回资产库。我通过“枚举资产”方法将资产存储在mutableArray中。关于如何做各种步骤的大部分细节,我是从搜索这个论坛得到的。谢谢!

我发现当我通过“writeimagedatatosavedphotosalbum”方法编写第一个“资产”时,与资产的URL关联的mutableArray的所有元素都变为空。此外,我注意到写回图像不会替换原始图像,而是创建图像的第二个实例。

我以为我会把这些结果传递给他人,以防其他人有问题。当然,我会对其他人的评论,观察等感兴趣。

这个论坛为我提供了很多信息。再次感谢。

2 个答案:

答案 0 :(得分:1)

您的 ALAsset 对象仅适用于 ALAssetsLibrary 对象所在的时间。当您获得 ALAsset 时,您需要在完成块中执行所需的一切,或者将 ALAssetsLibrary 存储在实例变量中,以便ARC不释放它

答案 1 :(得分:0)

ALAsset 本质上是一个核心数据对象,可以从多个线程访问属性,但 NSManagedObject NSManagedObject 的子类不能在没有父 NSManagedObjectContext 的情况下有意义,就像没有 ALAssetsLibrary 时ALAsset没有意义一样。

通常的做法是在 AppDelegate 上存储 NSManagedObjectContext ;当我将该功能抽象为包装器/单件时,在整个应用程序生命周期中都有对 NSManagedObjectContext 的保留引用。将相同的逻辑应用于 ALAssetsLibrary ,一切都将按预期工作。