0

IOS 9,2, Xcode 7.2, Objective-CОсновной прожектор, continueUserActivity в объективе-c?

Я использовал этот учебник (основной версии Spotlight), но перевел ее на Objective-C: http://code.tutsplus.com/tutorials/ios-9-introducing-search-apis--cms-24375

Все работает за исключением одной вещи - я не могу получить обратный вызов когда пользователь удаляет результат поиска. Кажется, мне нужно написать следующий метод в моем делегате приложения:

- (BOOL)application:(UIApplication *)application 
continueUserActivity:(NSUserActivity *)userActivity 
restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler 

Но он вообще не называется. Как решить эту проблему?

ответ

2

Вы должны сначала проверить деятельность имеет тип поиск действие:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler 
{ 
    if ([[userActivity activityType] isEqualToString:CSSearchableItemActionType]) 
    { 
     NSString *uniqueIdentifier = [userActivity.userInfo objectForKey:CSSearchableItemActivityIdentifier]; 
     NSLog(@"%@",uniqueIdentifier); 
     // Launch Detail controller 
    } 
return YES; 
} 

Надеется, что это помогает !!

+0

более внимательно рассмотрите вопрос - я уже ответил, что он не называется. Единственная идея, которая у меня есть, заключается в том, что этот учебник частично неверен, и этот метод вызывается для «NSUserActivity», а не «Core Spotlight», что означает, по крайней мере, я не могу определить несколько объектов для обработки (например, если я написал браузер, то я могу запустить этот браузер, но не может просматривать в центре внимания несколько страниц из истории и не может позволить пользователю перейти к любому из них –

+0

@VyachaslavGerchicov Извините! Теперь я отредактировал ответ. Вам нужно реализовать другой метод в объекте c. – Pushpa

+0

Спасибо, Я попробую это позже, но единственное, что я до сих пор не могу понять, это вызывать '[userActivity startCurrent]', так что у вас есть только одно «действие» одновременно. Но что, если мне нужно, например, очередь из 3 последние действия? Или должен «Core Spotlight» вызывать этот метод даже без явного объявления «NSUserActivity». –

 Смежные вопросы

  • Нет связанных вопросов^_^