关系的函数如下:FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:","employeesToEmployees",$source.employees")
这个“功能”是什么?它会怎么称呼?有没有介绍这个的指南?
我读过苹果的
但我还是不明白。
关系的函数如下:FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:","employeesToEmployees",$source.employees")
这个“功能”是什么?它会怎么称呼?有没有介绍这个的指南?
我读过苹果的
但我还是不明白。
这是一个“具有任意方法调用的函数表达式”,似乎记录得很差。我知道的唯一参考是NSExpression 类参考中的一段:
函数表达式
在 OS X v10.4 上,
NSExpression
仅支持一组预定义的函数:sum
、count
、min
、max
和average
. 使用自定义关键字(例如,MAX(1, 5, 10)
)在谓词语法中访问这些预定义函数。在 OS X v10.5 及更高版本上,函数表达式还支持任意方法调用。要使用此扩展功能,您现在可以使用语法
FUNCTION(receiver, selectorName, arguments, ...)
,例如:
FUNCTION(@"/Developer/Tools/otest", @"lastPathComponent") => @"otest"
该示例代码中的引用似乎不正确。但以下代码在 iOS 5/6 上编译并运行:
NSExpression *expr = [NSExpression expressionWithFormat:@"FUNCTION('/Developer/Tools/otest', 'lastPathComponent')"];
id result = [expr expressionValueWithObject:nil context:nil];
NSLog(@"result: %@", result);
// Output:
// otest
所以在你的情况下,它是一个函数表达式,在评估时调用
[$manager destinationInstancesForEntityMappingNamed:@"employeesToEmployees"
sourceInstances:$source.employees]
其中$manager
和$source
由迁移管理器和源对象替换,如“核心数据模型版本控制和数据迁移编程指南”中的映射模型对象中所述。