gpt4 book ai didi

iphone - iOS - ALAssetsLibrary 使用的缓存数据未更新

转载 作者:行者123 更新时间:2023-11-28 17:35:32 29 4
gpt4 key购买 nike

在 iPhone 上测试我的应用程序时,我似乎遇到了 ALAssetLibrary 的缓存问题。

用于产生此问题的步骤

  1. 使用 iPhone 相机拍照
  2. 使用 ALAssetsLibrary 访问相册(通过 ELCImagePicker )

问题是,当 ELCImagePicker 显示相册列表时,在第 1 步中拍摄的照片的缩略图显示在相机胶卷相册中(这是正确的),但是当我进入相机胶卷相册时,该照片是不在那里。控制台日志中也会显示类似这样的错误:

Cached count is off for 0x2391d0 <x-coredata://D226A7C3-95D5-40B3-BCFB-726E534AB57A/Album/p1> (1357 != 1358) moc=<PLManagedObjectContext: 0x63794c0>

1357 和 1358 似乎与我拍摄照片前后的照片数相匹配,关闭图像选择器并再次打开它没有帮助。但如果我切换到照片应用程序,照片就会显示在那里。当我返回到我的应用程序时,照片现在也显示出来了。

我都试过了

UIImageWriteToSavedPhotosAlbum ( UIImage *image, id completionTarget, SEL completionSelector, void *contextInfo );

和 ALAssetsLibrary 的

(void)writeImageToSavedPhotosAlbum:(CGImageRef)imageRef orientation:(ALAssetOrientation)orientation completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock

但两者都不起作用。任何帮助是极大的赞赏。谢谢!

最佳答案

您可以监听 ALAssetsLibraryChangedNotification 通知。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadAlbumGroups) name:ALAssetsLibraryChangedNotification object:nil];

reloadAlubmGroups 中从 Assets 库加载您的专辑组以获取更新的对象。


苹果文档:

ALAssetsLibraryChangedNotification

Sent when the contents of the assets library have changed from under the app that is using the data. When you receive this notification, you should discard any cached information and query the assets library again. You should consider invalid any ALAsset, ALAssetsGroup, or ALAssetRepresentation objects you are referencing after finishing processing the notification.

In iOS v4.0, the notification’s object is nil. In iOS v4.1 and later, the notification object is the library object that posted the notification.

关于iphone - iOS - ALAssetsLibrary 使用的缓存数据未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9887470/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com