如果我观看每个NSMetadataQueryGatheringProgress,我是否需要NSMetadataQueryDidFinishGathering?

时间:2017-03-29 01:52:14

标签: macos nsmetadataquery

NSMetadataQuery发布NSMetadataQueryGatheringProgress作为查询运行,然后NSMetadataQueryDidFinishGathering,当它完成时。我收到了两个通知,而且工作正常。

我注意到,当我得到NSMetadaQueryDidFinishGathering时,自从最后的收集进度以来,从来没有任何新的数据。是否一直保证如此?

我已经阅读了这两个常数的文档,而且我不清楚这是不是我想要的。

如果我处理NSMetadataQueryDidFinishGathering?中的传入结果,这总能得到我的每一个结果吗?

1 个答案:

答案 0 :(得分:1)

据我了解documentation这对于静态搜索来说是正确的,但对于实时搜索则不然。

初始搜索(收集过程)后发送NSMetadataQueryDidFinishGathering。您可以使用-stopQuery停止在did done方法中的搜索。然后,当然,没有新的数据将被传递。

但您也可以使用-disableUpdate暂停搜索。然后,您阅读结果并使用-enableUpdates重新启动(实时)搜索。然后,您将在完成通知后获得更新,i。即当用户更改文件以匹配搜索条件时。