Нужно ли мне NSMetadataQueryDidFinishGathering, если я наблюдаю за каждым NSMetadataQueryGatheringProgress?
NSMetadataQuery
сообщений NSMetadataQueryGatheringProgress
как запрос выполняется, а затем NSMetadataQueryDidFinishGathering
когда это будет сделано. Я получаю оба уведомления, и они работают нормально.
Я замечаю, однако, что когда я получаю NSMetadaQueryDidFinishGathering
с момента окончательного сбора данных никогда не будет никаких новых данных. Это гарантировано всегда будет так?
Я прочитал документы для обеих этих констант, и мне не ясно, предназначено ли это.
Если я имею дело с входящими результатами в NSMetadataQueryDidFinishGathering?
, это всегда даст мне каждый результат?
1 ответ
Насколько я понимаю документация, это верно для статического поиска, но не для реального поиска.
NSMetadataQueryDidFinishGathering
отправляется после начального поиска (процесс сбора). Затем вы можете остановить поиск внутри вашего методафиниста с помощью -stopQuery
, Тогда, конечно, новые данные не будут доставлены.
Но вы можете просто приостановить поиск с помощью -disableUpdate
, тоже. Затем вы читаете результаты и перезапускаете (живой) поиск с -enableUpdates
, Затем вы получите обновления после окончания уведомления, т.е. когда пользователь изменяет файлы в соответствии с критериями поиска.