Spotlight API (NSMetadataQuery) не возвращает результаты

Я пытаюсь работать с NSMetadataQuery в проекте C++\Qt, и мне удалось его скомпилировать и запустить, но я получаю только уведомление NSMetadataQueryDidStartGatheringNotification.

Я видел много вопросов по этой проблеме, но ни один из них не работал у меня.

В проекте есть (пока) 3 файла:

main.cpp
AppController.h
AppController.m

вот фрагмент соответствующего кода: http://pastebin.com/g4cKYPkm

Я написал это дважды, эта версия является копией пасты из примера Apple «прожектор» за вычетом кода, необходимого для графического интерфейса (мой проект является консольным проектом), и оба раза я получил один и тот же результат.

Во многих ответах говорится, что мне нужно запустить startQuery в mainThread, у меня есть только один поток, и я использовал [NSThread isMainThread], чтобы проверить, действительно ли я работаю в mainThread.

Я добавил цикл сразу после вызова startQuery.

//Psuedo code
while query.isGathering == YES {
    print query.isStarted
    print query.isGathering
    print query.isStopped
    print query.operationQueue.operationCount
    print query.resultCount
    wait 10sec
}

и я понимаю, что запрос запущен, он собирается, он не остановлен, и как результат, так и размеры очереди равны 0.

Любая идея, что я делаю неправильно? Любая идея, как еще проанализировать проблему? благодарю вас.

РЕДАКТИРОВАТЬ: я работаю с Qt Creator, я пробовал тот же код с XCode, но не повезло :(


person ManicQin    schedule 05.11.2014    source источник
comment
stackoverflow.com/a/47705393/3170912   -  person iwolf    schedule 08.12.2017
comment
Ты герой... к сожалению, я несколько лет назад сменил работу и не могу проверить, работает ли это на самом деле. Тем не менее, большое спасибо за попытку улучшить сообщество.   -  person ManicQin    schedule 11.12.2017