Bu, çok zayıf bir şekilde belgelenmiş gibi görünen "keyfi yöntem çağırmalarına sahip işlev ifadeleridir". min
, sum
, count
:
Fonksiyon OS X 10.4 üzerinde
, NSExpression
sadece işlevlerinin bir önceden tanımlanmış bir set destekler ifadeler: Bildiğim kadarıyla tek referans NSExpression Class Reference bir paragraf max
ve average
. Bu önceden tanımlanmış işlevlerine, özel anahtar sözcüklerini kullanarak (örneğin, MAX(1, 5, 10)
) varsayılan sözdiziminde erişilmiştir.
OS X v10.5 ve sonraki sürümlerinde, işlev ifadeleri de keyfi yöntem çağırmalarını destekler. Bu genişletilmiş işlevsellik kullanmak için, şimdi örneğin sözdizimi FUNCTION(receiver, selectorName, arguments, ...)
, kullanabilirsiniz: o örnek kodda alıntı
FUNCTION(@"/Developer/Tools/otest", @"lastPathComponent") => @"otest"
yanlış görünüyor. Ancak aşağıdaki kod derler ve iOS 5/6 üzerinde çalışan: sizin durumunuzda Yani
NSExpression *expr = [NSExpression expressionWithFormat:@"FUNCTION('/Developer/Tools/otest', 'lastPathComponent')"];
id result = [expr expressionValueWithObject:nil context:nil];
NSLog(@"result: %@", result);
// Output:
// otest
, bu $manager
ve $source
ile değiştirilmiştir
[$manager destinationInstancesForEntityMappingNamed:@"employeesToEmployees"
sourceInstances:$source.employees]
değerlendirildiğinde, çağıran bir işlev ifadesidir "Temel Veri Modeli Sürüm Oluşturma ve Veri Taşıma Programlama Kılavuzu" nda Mapping Model Objects'da açıklandığı gibi geçiş yöneticisi ve kaynak nesnesi.