Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ALAssetLibraryChangedNotification多次触发_Ios_Iphone_Uiimage_Alassetslibrary - Fatal编程技术网

Ios ALAssetLibraryChangedNotification多次触发

Ios ALAssetLibraryChangedNotification多次触发,ios,iphone,uiimage,alassetslibrary,Ios,Iphone,Uiimage,Alassetslibrary,我正在编写一个应用程序,用户可以选择几个图像并要求将它们保存到库中。我使用ALAssetLibrary创建库中所有图像的列表,供用户选择。当用户要求保存时,我使用[library writeImageToSavedPhotosAlbum:metadata:completionBlock:将图像一次保存一张到保存的照片中。因此,我首先保存一个图像,然后在完成块中保存另一个图像,依此类推 我希望调用AlassetLibraryChangedNotification的次数与要保存的图像数量相同。但它被

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

我希望调用AlassetLibraryChangedNotification的次数与要保存的图像数量相同。但它被呼叫的次数是原来的两倍。有什么线索可以解释为什么会发生这种情况吗?我已经检查过,我实际上只为每个选定的图像编写一次图像。在保存每个图像后,通知会立即出现。一旦收到每个已保存图像的所有通知,我将重新加载库并再次加载资源。每次我完成重新加载资产时,通知就会再次出现


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

如果您打开了照片流更新,那么额外的通知可能是由于照片流更新造成的。

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

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

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

嘿,面对同样的问题,找到解决办法了吗?有人找到解决办法了吗?