2

NSFetchedResultsControllerでの注文にのみ使用する属性を持つNSManagedObjectがあります。その属性の値は、他の属性または関係の値から決定されます。

したがって、オブジェクトを保存する準備をしているときに、その値を把握します。ドキュメントを読んで実験したところ、これはまたはのいずれかで実行できるよう- (void) willSaveです- (BOOL) validateForUpdate: NSError **error

私の実験では、これらがタンデムで呼び出され、最初に呼び出されることがわかりましvalidateForUpdatewillSave

しかし、舞台裏で何が起こっているのかについての私の洞察力は乏しいので、価値を設定するために一方の場所がもう一方の場所よりも優れているかどうかを誰かがアドバイスできるのではないかと思いました。

ありがとう。

4

2 に答える 2

1

派生値がある場合、通常は保存したくないが、保存したい場合(したがって、動的に生成する利点は無効になりますが、オブジェクトが多く、必要な場合は速度の理由で実行できます。いくつかの凝った述語作業を行うために。)モデルで通常の値として設定し、プリミティブ値が設定されているかどうかを確認するカスタムアクセサーを作成できますprimitiveValueForKey:@"propertyName"

.h 
@property()NSString* someProperty;

.m
@dynamic someProperty;
-(NSString *) someProperty
{
    pValue = [self primitiveValueForKey;@"someProperty"];
    if(!pValue)
    {
         //calculate pvalue
         pValue = [self derivedPValue];
         [self setPrimitiveValue: pValue forKey:@"someProperty"];
    }
 return pValue;
}
于 2012-05-07T16:46:55.977 に答える
0

あなたはおそらく入りたいと思うでしょうwillSave。技術的に検証を行っているわけではありません。メソッドの説明では、派生値の計算について言及しています。

于 2012-05-07T16:48:59.087 に答える