7

Ho sempre creato il mio NSFetchRequests interamente in-code. Ora guardo la GUI Xcode per costruire una richiesta di recupero e archiviarla nel modello.Sostituzione variabile con FetchRequests memorizzate in un modello CoreData

Sto seguendo un esempio dalla documentazione Xcode. Ho aggiunto un FETCH per il mio modello, e il predicato che è stato creato attraverso la GUI modellazione è:

firstName LIKE[c] "*SUBSTRING*" 

Ho poi recuperare tale richiesta con queste due righe:

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

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

Un NSLog del risultante NSFetchRequest Risulterà:

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

.. che indica che la variabile non viene sostituita prima del ritorno dello stored FetchRequest.

Quindi, in che modo si specifica che il testo immesso nella GUI di Predicate Builder per la creazione di dati di Xcode Data Fetch è destinato a essere sostituito in fase di esecuzione da NSFetchRequest: fetchRequestFromTemplateWithName: substitutionVariables:?

Grazie!

Woody

risposta

5

È necessario fare clic destro sulla riga di prendere l'editor richiesta predicato contenente la variabile previsto e selezionare "variabile" dal popup. Dove fai clic con il tasto destro del mouse a volte è schizzinoso nell'editor Xcode, quindi tendo a cliccare a sinistra dei pulsanti +/-.

+0

Genio. Questa è esattamente la soluzione. (Non ho mai sperimentato nulla di così intuitivo in un'app Apple come quella finestra nascosta.) Non ho idea di come mai mi sarei mai imbattuto che non avessi chiesto e tu avessi risposto. Grazie!! – Woodster

+1

Sono d'accordo. Si prega di presentare una richiesta di miglioramento per l'interfaccia utente e un bug contro la documentazione (per non dire dove cercare) su http://bugreport.apple.com! –