我正在尝试编写一个从资产库中读取图像的应用程序,修改图像的GPS数据并将其写回资产库。我通过“枚举资产”方法将资产存储在mutableArray中。关于如何做各种步骤的大部分细节,我是从搜索这个论坛得到的。谢谢!
我发现当我通过“writeimagedatatosavedphotosalbum”方法编写第一个“资产”时,与资产的URL关联的mutableArray的所有元素都变为空。此外,我注意到写回图像不会替换原始图像,而是创建图像的第二个实例。
我以为我会把这些结果传递给他人,以防其他人有问题。当然,我会对其他人的评论,观察等感兴趣。
这个论坛为我提供了很多信息。再次感谢。
答案 0 :(得分:1)
您的 ALAsset 对象仅适用于 ALAssetsLibrary 对象所在的时间。当您获得 ALAsset 时,您需要在完成块中执行所需的一切,或者将 ALAssetsLibrary 存储在实例变量中,以便ARC不释放它
答案 1 :(得分:0)
ALAsset 本质上是一个核心数据对象,可以从多个线程访问属性,但 NSManagedObject 或 NSManagedObject 的子类不能在没有父 NSManagedObjectContext 的情况下有意义,就像没有 ALAssetsLibrary 时ALAsset没有意义一样。
通常的做法是在 AppDelegate 上存储 NSManagedObjectContext ;当我将该功能抽象为包装器/单件时,在整个应用程序生命周期中都有对 NSManagedObjectContext 的保留引用。将相同的逻辑应用于 ALAssetsLibrary ,一切都将按预期工作。