ALAssetLibraryChangedNotification 触发多次
Posted
技术标签:
【中文标题】ALAssetLibraryChangedNotification 触发多次【英文标题】:ALAssetLibraryChangedNotification triggered multiple times 【发布时间】:2012-08-02 22:18:44 【问题描述】:我正在编写一个应用程序,用户可以在其中选择多个图像并要求将它们保存到库中。我使用 ALAssetLibrary 创建图库中所有图像的列表供用户选择。当用户要求保存时,我使用[library writeImageToSavedPhotosAlbum:metadata:completionBlock:]
一次保存一张图片以保存照片。所以我首先保存一个图像,然后在完成块中,保存另一个图像,依此类推。
我希望 ALAssetsLibraryChangedNotification 被调用的次数与要保存的图像数量一样多。但它被调用了两倍的次数。任何线索为什么会发生这种情况?我已经检查过我实际上只为每个选定的图像编写了一次图像。在我保存每张图像后立即出现通知。一旦我收到每个保存的图像的所有通知,我就会重新加载库并再次加载资产。每次我完成重新加载资产时,通知都会再次开始。
有没有办法让我知道是否有更多此类通知出现,以便我可以选择仅在最后一个通知之后执行实际处理?
【问题讨论】:
嘿,刚遇到同样的问题,找到解决办法了吗? 有人找到解决办法了吗? 【参考方案1】:如果您开启了额外通知,则可能是由于照片流更新所致。
【讨论】:
【参考方案2】:我发现的最佳解决方案是在执行保存操作之前删除观察者。
[[NSNotificationCenter defaultCenter] removeObserver:self name:ALAssetsLibraryChangedNotification object:nil];
然后在保存所有内容后再次订阅通知。
【讨论】:
以上是关于ALAssetLibraryChangedNotification 触发多次的主要内容,如果未能解决你的问题,请参考以下文章