2012-12-19 4 views
5

関係の関数は次のようになります。FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:","employeesToEmployees",$source.employees")iOS:coredata関係を移行する際の値式の機能は何ですか?

この "関数"とはなんですか?どのように呼び出されますか?これを紹介するガイドがありますか?

私が読んだAppleの

Core Data Model Versioning and Data Migration programming guide

が、私はまだこれを得ることはありません。

答えて

7

これは「任意のメソッド呼び出しを伴う関数式」であり、これは非常によく記述されていないようです。私が知っている唯一の参照は、NSExpression Class Reference内の1つの段落です:sumcountmin

機能NSExpressionのみの機能の 事前に定義されたセットをサポートし、OS X 10.4上で

を表現します、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$sourceが置き換えられます

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

を評価したときだからあなたの場合には、それは、呼び出す関数の式です「コアデータモデルのバージョン管理およびデータ移行のプログラミングガイド」のMapping Model Objectsに記載されているように、移行マネージャとソースオブジェクトを使用します。

関連する問題