2

およびデリゲートメソッドをトリガーせずNSManagedObjectに、デリゲートによって現在保持されているものを変更できる方法(またはトリック)はありますか?NSFetchedResultsControllerdidChangeObject:controllerWillChangeContent:

たとえば、現在、変更するmyObject.property = @"hello";と、デリゲートメソッドがトリガーされ、テーブルビューが更新されますが、これを望まないのは、明示的に指定した特定の変更に対してのみであり、すべての変更ではありません。

4

1 に答える 1

4

からのsetPrimitiveValue:forKey:メソッドNSManagedObjectはまさにこれを行います。

[myObject setPrimitiveValue:@"hello" forKey:@"property"]

または、動的に生成されたアクセサメソッドを使用します。

[myObject setPrimitiveProperty:@"hello"]

ただし、いくつかの「特別な考慮事項」があるため、そのメソッドのドキュメントを読む必要があります。

別のアプローチは、「ネストされた管理対象オブジェクトコンテキスト」を作成し、その子コンテキストですべての変更を行うことです。子コンテキストが保存された場合にのみ、変更は親コンテキストに伝播されます。

于 2012-07-25T18:28:47.907 に答える