Dies ist eine "Funktionsausdrücke mit beliebigen Methodenaufrufen", die sehr schlecht dokumentiert scheinen. Der einzige Hinweis, die ich kenne ist ein Absatz in den NSExpression Class Reference:
Funktionsausdrücken
Unter OS X v10.4, NSExpression
nur unterstützt einen vordefinierten Satz von Funktionen: sum
, count
, min
, max
und average
. Auf diese vordefinierten Funktionen von wurde in der Prädikatsyntax unter Verwendung von benutzerdefinierten Schlüsselwörtern zugegriffen (z. B. MAX(1, 5, 10)
).
Auf OS X 10.5 und höher unterstützen Funktionsausdrücke auch beliebige Methodenaufrufe der Methode . Um diese erweiterten Funktionen zu nutzen, können Sie jetzt die Syntax FUNCTION(receiver, selectorName, arguments, ...)
, für Beispiel:
FUNCTION(@"/Developer/Tools/otest", @"lastPathComponent") => @"otest"
Die zitierte in diesem Beispielcode scheint falsch sein. Aber der folgende Code kompiliert und läuft auf iOS 6.5:
NSExpression *expr = [NSExpression expressionWithFormat:@"FUNCTION('/Developer/Tools/otest', 'lastPathComponent')"];
id result = [expr expressionValueWithObject:nil context:nil];
NSLog(@"result: %@", result);
// Output:
// otest
Also in Ihrem Fall ist es eine Funktion Ausdruck, der ruft, wenn ausgewertet
[$manager destinationInstancesForEntityMappingNamed:@"employeesToEmployees"
sourceInstances:$source.employees]
wo $manager
und $source
durch die ersetzt werden Migrationsmanager und das Quellobjekt, wie in Mapping Model Objects im "Core Data Model Versioning and Data Migration Programming Guide" beschrieben.