gpt4 book ai didi

objective-c - 更改相机胶卷后 ALAsset 无效?

转载 作者:行者123 更新时间:2023-12-01 17:44:12 25 4
gpt4 key购买 nike

我使用 UIImageWriteToSavedPhotosAlbum() 将一些照片写入照片库同时我使用 ALAssetsGroupSavedPhotos 显示此 Assets 组 (enumerateAssetsUsingBlock:) 的内容和 friend 。有时通过枚举组返回的 Assets 有点“无效”,这意味着 defaultRepresentation通话返回 nil ,尽管 Assets 仍在内存中。

我注意到这似乎发生在照片库被 UIImageWriteToSavedPhotosAlbum() 修改之后。称呼。这是记录在案的行为吗?我该如何预防?重新加载 Assets 不是一个可行的选择,因为用户可能已经在使用 Assets 的 UI 更深处。

最佳答案

这是一个不幸的,但记录在案的行为。以供引用:

"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."



所以你要做的就是为 ALAssetsLibraryChangedNotification注册一个观察者。 . (关于 iOS 5.X 上的这个通知有一个错误,参见 Open Radar。)
当您收到通知时,您必须重新枚举所有组和 Assets 。目前没有其他办法。从 GUI 的角度来看,这是非常不幸的,我们只能希望 Apple 在 future 改进这种机制。

干杯,

亨德里克

关于objective-c - 更改相机胶卷后 ALAsset 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10838946/

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