gpt4 book ai didi

ios - 为什么快速连续多次调用 NSMetadataQueryDidUpdateNotification?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:14:57 26 4
gpt4 key购买 nike

为了监控我的iCloud容器中的文件变化,我注册了

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(processiCloudUpdates:)
name:NSMetadataQueryDidUpdateNotification
object:nil];

理想情况下,每当我收到已进行更新的消息时,我都想打开我的每个 UIDoc 并检查设置是否已更改。如果 NSMetadataQueryDidUpdateNotification 只被调用一次,那就没问题了。然而,它被触发了好几次(我没有忘记 removeObserver 等,并且有几个实例在运行),因此每次更新通知时加载所有文件是非常不切实际的被解雇(如果我有 5 个文件并且被调用了 4 次,我会快速连续打开 20 个 UIDoc)。例如,如果我更新一个文件(并且我无处不在的容器中只有一个文件),就会发生这种情况:

2012-07-05 10:51:39.565 Meernotes[7842:707] ... NSMetadataQuery update
2012-07-05 10:51:42.468 Meernotes[7842:707] ... NSMetadataQuery update
2012-07-05 10:51:45.216 Meernotes[7842:707] ... NSMetadataQuery update
2012-07-05 10:51:47.036 Meernotes[7842:707] ... NSMetadataQuery update

有没有其他方法可以确定文件何时更改? NSFileVersion 也没有太大帮助。

最佳答案

NSMetadataQueryDidUpdateNotification 每次当 NSMetadataQuery 中的任何 NSMetadataItem 的一些属性更新时发出。它包括部分上传或下载进度。因此,在此通知处理期间尝试打开 UIDocument 实例是错误的。

相反,您可以通过观察 NSMetadataItem 的属性值来确定文档下载的时间,然后将其排队等待打开。

不要忘记处理 NSMetadataQueryDidFinishGatheringNotification。当接收者完成初始结果时发布 - 查询的收集阶段

关于ios - 为什么快速连续多次调用 NSMetadataQueryDidUpdateNotification?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11341992/

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