ALAssetLibraryChangedNotification多次触发

时间:2012-08-02 22:18:45

标签: ios iphone uiimage alassetslibrary

我正在编写一个应用程序,用户可以选择多个图像并要求将它们保存到库中。我使用ALAssetLibrary创建库中所有图像的列表供用户选择。当用户请求保存时,我使用[library writeImageToSavedPhotosAlbum:metadata:completionBlock:]一次保存一张图像以保存照片。所以我首先保存一个图像然后在完成块中保存另一个图像,依此类推。

我希望ALAssetsLibraryChangedNotification的调用次数与要保存的图像数量相同。但它被召唤的次数是原来的两倍。任何线索为什么会发生这种情况?我已经检查过我实际上只为每个选定的图像写了一次图像。保存每个图像后立即发生通知。一旦我为每个保存的图像收到一次所有通知,我就会重新加载库并再次加载资源。每次重新加载资产时,通知都会再次开始。

有没有办法让我知道是否有更多这样的通知出现,以便我可以选择仅在最后一次之后执行实际处理?

2 个答案:

答案 0 :(得分:0)

额外的通知可能是由于照片流更新,如果你有。

答案 1 :(得分:0)

我发现的最佳解决方案是在执行保存操作之前删除观察者。

[[NSNotificationCenter defaultCenter] removeObserver:self name:ALAssetsLibraryChangedNotification object:nil];

然后在保存所有内容后再次订阅通知。

相关问题