2017-11-14 3 views
0

iOSアプリケーションでは、JSONオブジェクトを解析してNSManagedObjectContextに挿入するフレームワークを使用してNSManagedObjectサブクラスオブジェクトを作成しています。ただし、新しく作成したオブジェクトと、永続ストアに既に保存されているオブジェクトを区別したいと思います。これは、ストア内のいくつかのオブジェクトを更新または上書きする必要があるためです。 NSFetchRequestを実行すると、登録されたオブジェクト(ストアからフェッチされたオブジェクトとローカルで作成したオブジェクトの両方)がすべてメモリ内に返されます。どのようにして2つのタイプのオブジェクトを区別することができますか?メモリ内マネージドオブジェクトコンテキストと永続ストアからフェッチされたオブジェクトを区別する

+0

一致するオブジェクトが存在するかどうかを確認するまで、新しいオブジェクトを挿入するのはなぜですか?あるいは、複数の管理オブジェクトコンテキストを使用することもできますが、それはあまりにも複雑な解決策のようです。 – Paulw11

+0

残念ながら、フレームワークはJSONを解析し、新しく作成した管理対象オブジェクトをコンテキストに渡す必要があります。オブジェクトの作成と永続的なストアからの読み込みの2つのコンテキストを持つことでこれを回避できると思いますが、それは複雑すぎるようです。 –

答えて

1

オブジェクトIDを確認することで、管理対象オブジェクトが保存されているかどうかを確認できます。最初にオブジェクトを保存してからfalseをオンにするまで、myObject.objectID.isTemporaryIDを確認してください(true)。

@ Paulw11がコメントに書いているように、この場合は、ローカルオブジェクトを既に持っているかどうかを調べるのが一般的です。新しいものを作成するよりです。それは重複の問題を回避します。既存のオブジェクトの値を更新するか、または削除して置き換えることができます。

関連する問題