関係の関数は次のようになります。FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:","employeesToEmployees",$source.employees")
この「機能」とは?どのように呼ばれますか?これを紹介するガイドはありますか?
Appleのを読んだ
CoreDataモデルのバージョン管理とデータ移行プログラミングガイド
しかし、私はまだこれを取得していません。
関係の関数は次のようになります。FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:","employeesToEmployees",$source.employees")
この「機能」とは?どのように呼ばれますか?これを紹介するガイドはありますか?
Appleのを読んだ
CoreDataモデルのバージョン管理とデータ移行プログラミングガイド
しかし、私はまだこれを取得していません。
これは「任意のメソッド呼び出しを伴う関数式」であり、文書化が非常に不十分なようです。私が知っている唯一のリファレンスは、NSExpressionクラスリファレンスの1つの段落です。
関数式
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"
そのサンプルコードの引用は正しくないようです。ただし、次のコードはiOS5/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
で説明されているように、移行マネージャーとソースオブジェクトに置き換えられます。