2012-12-19 6 views

risposta

7

Questa è una "espressione di funzione con invocazioni di metodo arbitrarie" che sembrano essere scarsamente documentate. L'unico riferimento che io sappia è un paragrafo nel NSExpression Class Reference:

Funzione espressioni

Su OS X v10.4, NSExpression supporta solo un insieme predefinito di funzioni: sum, count, min , max e average. Queste funzioni predefinite sono state utilizzate nella sintassi del predicato utilizzando le parole chiave personalizzate (ad esempio, MAX(1, 5, 10)).

Su OS X v10.5 e versioni successive, le espressioni di funzione supportano anche invocazioni di metodo arbitrarie . Per utilizzare questa funzionalità estese, è ora possibile usare la sintassi FUNCTION(receiver, selectorName, arguments, ...), per esempio, :

FUNCTION(@"/Developer/Tools/otest", @"lastPathComponent") => @"otest"

Il citando in questo codice di esempio sembra non essere corretto. Ma il seguente codice compilato ed eseguito su iOS 5/6:

NSExpression *expr = [NSExpression expressionWithFormat:@"FUNCTION('/Developer/Tools/otest', 'lastPathComponent')"]; 
id result = [expr expressionValueWithObject:nil context:nil]; 
NSLog(@"result: %@", result); 
// Output: 
// otest 

Quindi nel tuo caso, si tratta di un'espressione di una funzione che chiama, quando valutato

[$manager destinationInstancesForEntityMappingNamed:@"employeesToEmployees" 
            sourceInstances:$source.employees] 

dove $manager e $source sono sostituiti dai gestore di migrazione e l'oggetto di origine, come descritto in Mapping Model Objects nella "Guida alla programmazione di migrazione di dati e modelli di dati del modello di dati principale".

Problemi correlati