2010-11-10 7 views
0

En Objective-C, je suis en train de configurer un NSMetaDataQuery et de définir le setSearchScope: pour la requête afin de rechercher un dossier Documents spécifique à l'utilisateur. La recherche fonctionne mais ne se recycle pas dans l'arborescence des répertoires, uniquement dans le dossier Documents.
J'ai essayé des caractères génériques mais pas de joie.NSMetaDataQuery, définissez les chemins setSearchScope à récursifs?

Voici essentiellement ce que je l'ai essayé, et il fonctionne à l'exception ne recherche pas sous le répertoire Documents:

query = [[NSMetadataQuery alloc] init]; 
[query setSearchScopes:[NSArray arrayWithObjects:@"/Users/username/Documents/",nil]]; 
[query setPredicate:[NSPredicate predicateWithFormat:@"(kMDItemFSContentChangeDate >= '$time.this_week')"]]; 
[query startQuery]; 

Répondre

0

Je pense que votre problème pourrait être le slash sur /Users/username/Documents/. Lorsque vous traitez des chemins en Objective-C, le framework ne place jamais de barre oblique. Le retirer aide-t-il?

+0

Bonne pensée. J'ai essayé de l'enlever et j'ai obtenu les mêmes résultats. Je pensais qu'il pourrait y avoir quelque chose que je peux faire avec NSString en définissant le chemin, mais je ne l'ai pas encore résolu. Il existe de nombreuses méthodes pour gérer les chemins dans NSString que j'ai découvert en travaillant à travers cela. – Wilersh

+0

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/ManipulatingPaths.html%23//apple_ref/doc/uid/20000152-BBCBIGHH – Wilersh

1

Je pense que le problème est avec votre chaîne de format NSPredicate. (J'avais l'intention d'écrire ceci!) Essentiellement, votre $time.this_week fonctionnerait bien dans une requête Spotlight, mais pas comme une chaîne NSPredicate. Vous devez créer en fait un objet NSDate et de passer dans la chaîne de requête comme

[query setPredicate:[NSPredicate predicateWithFormat:@"(kMDItemFSContentChangeDate <= %@)", [NSDate date]]]; 

Voici les liens pertinents pour votre référence:

Comparison of NSPredicate and Spotlight Query Strings
Spotlight Query Expression Syntax
Predicate Format String Syntax