Нужно ли мне NSMetadataQueryDidFinishGathering, если я наблюдаю за каждым NSMetadataQueryGatheringProgress?

NSMetadataQuery сообщений NSMetadataQueryGatheringProgress как запрос выполняется, а затем NSMetadataQueryDidFinishGatheringкогда это будет сделано. Я получаю оба уведомления, и они работают нормально.

Я замечаю, однако, что когда я получаю NSMetadaQueryDidFinishGatheringс момента окончательного сбора данных никогда не будет никаких новых данных. Это гарантировано всегда будет так?

Я прочитал документы для обеих этих констант, и мне не ясно, предназначено ли это.

Если я имею дело с входящими результатами в NSMetadataQueryDidFinishGathering?, это всегда даст мне каждый результат?

1 ответ

Решение

Насколько я понимаю документация, это верно для статического поиска, но не для реального поиска.

NSMetadataQueryDidFinishGathering отправляется после начального поиска (процесс сбора). Затем вы можете остановить поиск внутри вашего методафиниста с помощью -stopQuery, Тогда, конечно, новые данные не будут доставлены.

Но вы можете просто приостановить поиск с помощью -disableUpdate, тоже. Затем вы читаете результаты и перезапускаете (живой) поиск с -enableUpdates, Затем вы получите обновления после окончания уведомления, т.е. когда пользователь изменяет файлы в соответствии с критериями поиска.

Другие вопросы по тегам