1

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

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

只是想我会传递这些结果,以防其他人有问题。而且,当然,我会对其他人的评论、观察等感兴趣。

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

4

2 回答 2

1

您的ALAsset对象仅在您的ALAssetsLibrary对象存在的时间段内有效。当您获得ALAsset时,您需要在完成块中执行您想要的所有操作,或者将ALAssetsLibrary存储在实例变量中,这样ARC就不会释放它。

于 2013-02-07T01:58:31.187 回答
0

ALAsset本质上是一个核心数据对象,它可以从多个线程访问属性,但是没有父NSManagedObjectContext的NSManagedObjectNSManagedObject的子类没有意义,就像没有 ALAssetsLibrary 的ALAsset没有意义一样。

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

于 2014-05-28T01:51:18.363 回答