Ich habe immer meine NSFetchRequests ganz in-Code erstellt. Jetzt schaue ich mir die Xcode-GUI an, um eine Abrufanforderung zu erstellen und sie im Modell zu speichern.Variablensubstitution mit FetchRequests in einem Coredata Modell gespeichert
Ich folge ein Beispiel aus der Xcode-Dokumentation. Ich habe eine Anfrage an mein Modell holen, und das Prädikat, das durch die Modellierung GUI erstellt wurde, ist:
firstName LIKE[c] "*SUBSTRING*"
ich abrufen dann diesen Antrag mit diesen beiden Linien:
NSDictionary *substituionDictionary = [NSDictionary dictionaryWithObject:@"woody" forKey:@"SUBSTRING"];
NSFetchRequest *fetchRequest = [mom fetchRequestFromTemplateWithName:@"firstNameContains" substitutionVariables:substituionDictionary];
Eine NSLog der NSFetchRequest resultierende Ausgaben dieses:
(entity: Customer; predicate: (firstName LIKE[c] "*SUBSTRING*"); sortDescriptors: (null); limit: 0)
.., das anzeigt, dass der Variable nicht vor der gespeicherten FetchRequest zum Rück substituiert ist.
Also, wie soll man angeben, dass Text, der in der Xcode Data Modeling Abruf-Prädikat-Builder-GUI eingegeben wurde, zur Laufzeit durch NSFetchRequest ersetzt werden soll: fetchRequestFromTemplateWithName: substitutionVariables:?
Vielen Dank!
Woody
Genius. Das ist genau die Lösung. (Ich habe noch nie etwas so unintuitive in einem Apple App wie das versteckten Pop-up erlebt.) Ich habe keine Ahnung, wie ich jemals gekommen wäre über das hatte ich nicht gefragt, und Sie beantworten. Vielen Dank!! – Woodster
Ich stimme zu. Bitte einen Verbesserungsvorschlag für die Benutzeroberfläche und einen Bug gegen die Dokumentationsdatei (für Sie nicht sagen, wo sie suchen müssen) bei http://bugreport.apple.com! –