Индексация CoreSpotlight не работает

Я использую API CoreSpotLight для индексации некоторого контента. По какой-то причине я не могу найти данные при поиске в SpotLight.

let atset:CSSearchableItemAttributeSet = CSSearchableItemAttributeSet()  
atset.title = "Simple title"  
atset.contentDescription = "Simple twitter search"  
let item = CSSearchableItem(uniqueIdentifier: "id1", domainIdentifier: "com.shrikar.twitter.search", attributeSet: atset)  
CSSearchableIndex.defaultSearchableIndex().indexSearchableItems([item]) { (error) -> Void in  
 print("Indexed")  
}  

Когда я запускаю приложение, я вижу, что данные проиндексированы, а ошибка равна нулю. Также я добавил CoreSpotLight и MobileCoreServices на этапе сборки.


person Shrikar    schedule 14.06.2015    source источник


Ответы (1)


Попробуйте использовать инициализатор itemContentType следующим образом:

let atset:CSSearchableItemAttributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeImage as String)
atset.title = "Simple title"
atset.contentDescription = "Simple twitter search"
let item = CSSearchableItem(uniqueIdentifier: "id1", domainIdentifier: "com.shrikar.twitter.search", attributeSet: atset)
CSSearchableIndex.defaultSearchableIndex().indexSearchableItems([item]) { (error) -> Void in
    print("Indexed")  
}

kUTTypeImage объявлен в MobileCoreServices.

person Bannings    schedule 14.06.2015
comment
Я пробовал тот же код, что и в документации, но он не работает. - person Shrikar; 14.06.2015
comment
Я не могу воспроизвести вашу проблему... Извините, я не могу вам помочь - person Bannings; 14.06.2015
comment
@Shrikar Я попробовал код Bannings, и он работает. Я думаю, вы ожидаете, что результат появится наверху, попробуйте прокрутить вниз в поиске, чтобы увидеть свой результат, если он там появится. - person Ayush; 17.06.2015
comment
@Ayush похоже, это была проблема. - person Shrikar; 17.06.2015
comment
@Shrikar, не могли бы вы ответить на форуме разработчиков Apple. - person Ayush; 17.06.2015