7

J'ai toujours créé mes NSFetchRequests entièrement en code. Maintenant, je regarde l'interface graphique de Xcode pour construire une requête d'extraction et la stocker dans le modèle.Substitution de variables avec FetchRequests stockées dans un modèle CoreData

Je suis un exemple de la documentation Xcode. J'ai ajouté une demande de récupération de mon modèle, et le prédicat qui a été créé par l'interface graphique de modélisation est:

firstName LIKE[c] "*SUBSTRING*" 

je récupère alors cette demande avec ces deux lignes:

NSDictionary *substituionDictionary = [NSDictionary dictionaryWithObject:@"woody" forKey:@"SUBSTRING"]; 

NSFetchRequest *fetchRequest = [mom fetchRequestFromTemplateWithName:@"firstNameContains" substitutionVariables:substituionDictionary]; 

Un NSLog du NSFetchRequest résultant délivre ceci:

(entity: Customer; predicate: (firstName LIKE[c] "*SUBSTRING*"); sortDescriptors: (null); limit: 0) 

.. ce qui indique que la variable est non substitué étant avant le retour du FetchRequest stocké. Alors, comment peut-on spécifier que le texte entré dans l'interface graphique de l'éditeur de prédiction de demande de Fetch Xcode Data Modeling est destiné à être substitué à l'exécution par NSFetchRequest: fetchRequestFromTemplateWithName: substitutionVariables:?

Merci!

Woody

Répondre

5

Vous devez effectuez un clic droit sur la ligne de la requête d'extraction éditeur prédicat contenant la variable prévu et sélectionnez « VARIABLE » dans le menu contextuel. Lorsque vous faites un clic droit est parfois difficile dans l'éditeur Xcode, j'ai tendance à cliquer juste à gauche des boutons +/-.

+0

Genius. C'est exactement la solution. (Je n'ai jamais rien vu d'aussi inintéressant dans une application Apple que cette fenêtre pop-up cachée.) Je n'ai aucune idée de ce que j'aurais pu trouver si je n'avais pas demandé et vous avez répondu. Merci!! – Woodster

+1

Je suis d'accord. Veuillez déposer une demande d'amélioration pour l'interface utilisateur et un bogue contre la documentation (pour ne pas vous indiquer où chercher) sur http://bugreport.apple.com! –

Questions connexes