Haga que las actividades de la aplicación y los estados se puedan search utilizando NSUserActivity

El siguiente es el código que estoy intentando implementar para hacer que las actividades de la aplicación y los estados sean buscados, pero que no puedan mostrarse en la búsqueda de iOS.

NSUserActivity *userActivity = [[NSUserActivity alloc]initWithActivityType:@"com.mycompany.activity-type"]; userActivity.title = @"Hello world from in app search"; userActivity.keywords = [NSSet setWithArray:@[@"Hello",@"Welcome", @"search"]]; userActivity.userInfo = @{@"id":@"com.example.state"}; userActivity.eligibleForSearch = YES; [userActivity becomeCurrent]; 

Enlace para que mi pregunta sea más clara.

Desde los foros de Apple:

Una cosa que ha mordido a algunas personas (incluido yo mismo) es que la actividad no debe desasignarse. Si su código solo funciona con NSUserActivities (es decir, no usa CoreSpotlight además), asegúrese de que sus actividades no se desasignen inmediatamente .
En mi caso, tenía un código que estaba asignando el NSUA, estableciendo algunas properties en él, llamando becomeCurrent, pero luego el object quedaba fuera de scope y se desasignaba. Si está haciendo esto, intente arrojar la actividad en una propiedad sólida para ver si puede ver los resultados cuando realiza la búsqueda.

https://forums.developer.apple.com/message/13640#13640

Lo que he encontrado es que debe asignar la instancia NSUserActivity que ha creado a la propiedad userActivity de UIViewControllers visible antes de llamar a -becomeCurrent. Lo ha arreglado para mí y los elementos aparecieron de inmediato tanto para la transferencia en otros dispositivos como para la búsqueda en el punto de mira en el mismo dispositivo.

Estaba experimentando el mismo problema, y ​​leí en los foros de desarrollo que en seed 1 solo funciona en el dispositivo. Pude hacer que funcione en el dispositivo.

Puede ser que esto, como con la transferencia, solo funcione en el dispositivo con tristeza.

No pude conseguir que funcionara con beta 2 tampoco. Usando un CSSearchableItemAttributeSet con

 CSSearchableItemAttributeSet* attributeSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString*)kUTTypeImage]; attributeSet.title = myobject.title; attributeSet.keywords = [myobject.desc componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; attributeSet.contentDescription = myobject.desc; if (myobject.images.count > 0) { attributeSet.thumbnailData = myobject.myimagedata; } attributeSet.rating = @(myobject.rating.integerValue / 2); CSSearchableItem* item; item = [[CSSearchableItem alloc] initWithUniqueIdentifier:@"..." domainIdentifier:@"..." attributeSet:attributeSet]; [[CSSearchableIndex defaultSearchableIndex] indexSearchableItems:@[item] completionHandler: ^(NSError * __nullable error) { NSLog(@"Search item indexed"); }]; 

funciona, sin embargo, incluso con imágenes. Lo que no pude conseguir fue la sorting para aparecer en cualquier lugar.