J'ai essayé d'utiliser la méthode MDQuerySetSortComparatorBlock dans l'infrastructure MDQuery pour trier la liste des résultats de la requête. Cependant, le bloc passé en paramètre à la méthode n'est pas appelé du tout. Ci-dessous un morceau de code que j'utilise pour faire une demande de requête. Toute aide est appréciée.Le bloc passé en paramètre à MDQuerySetSortComparatorBlock (API Spotlight) n'est pas appelé
queryString = [NSString stringWithFormat:@"kMDItemDisplayName == \'*a*\'cd"];
CFStringRef query = (__bridge CFStringRef)(queryString);
queryReference = MDQueryCreate(NULL, query, (__bridge CFArrayRef)([NSArray arrayWithObjects:(id)kMDItemDisplayName, nil]), NULL);
MDQuerySetSortComparatorBlock(queryReference, ^CFComparisonResult(const CFTypeRef *attrs1, const CFTypeRef *attrs2) {
NSLog(@"Block called");
return kCFCompareLessThan;
});
MDQuerySetSearchScope(queryReference, (__bridge CFArrayRef)([NSArray arrayWithObjects:(id)kMDQueryScopeComputer, nil]), 0);
MDQueryExecute(queryReference, kMDQueryWantsUpdates);
Merci Djan vous m'avez donné quelque chose à travailler. – Shashank
Hey Daij Djan, j'ai essayé de créer un iVar avec l'attribut copy, la méthode Block_copy utilisée. Rien de tout cela ne semble fonctionner. – Shashank
tirer, désolé .. :(laissez-moi dormir aeh .. y penser –