2017-05-29 25 views
0

私はiOS、Swiftの新機能です。私のアプリケーションには、「映画」という名前の多くのエンティティとの関係で「カテゴリ」という名前のエンティティが1つあります。コアデータの重複レコードを避ける方法 - ios

URLから取得したデータに応じて、「ムービー」エンティティが変更されています。私は、各カテゴリーで映画の記録を重複しないようにする方法を探しています。それを簡単に行う方法は考えられません。

+0

エンティティに固有のIDがありますか? –

+0

いいえ、そうではありません。カテゴリには制約があり、映画はそうではありません。 – benh

+0

あなたは何を求めていますか?タイトルは重複していますが、質問には言いませんか? – sage444

答えて

0

Core-dataには一意性を保証する方法が組み込まれていません。あなたはそれを自分で管理する必要があります。しかしそれはそれほど難しいことではありません。すべての挿入/更新の前にフェッチを行います。存在しない場合は作成し、存在する場合は更新します。一度に多くのエンティティを更新する場合(たとえば、多くのエンティティの更新があるネットワーク要求から)は、すべてのフェッチ要求を1回のフェッチ要求で取得し、必要に応じて作成または更新します。

これらのフェッチは、通常、各エンティティごとにuniqueIdsを使用して行われます。エンティティにuniqueIdがない場合は、コアデータよりも深刻な問題があります。同じ名前の2つの映画、または異なる名前の1つの映画を持つことができます。同じことを言うものがなければ、基本的に、別のエンティティを作成する必要があるか、既存のエンティティを更新する必要があるかを知る方法がありません。映画名を使用することは可能ですが、私はそれをお勧めしません。私は、あなたがあなたのサーバーのapiをより近く見て、提供されているuniqueIdがあるかどうかを確認し、もし存在しなければ、サーバーチームによって修正されなければなりません。

+0

映画名を一意のIDにするにはどうすればいいですか? – benh

+0

名前で既存のムービーを新しいデータで検索したとき。あなたがそれを見つけたら、それを更新してください。 (これはやはり悪い考えです。あなたのシステムには映画ごとにユニークなアイデアがあります。サーバがあなたにユニークなIDを与えていないのは本当に驚きです)。 –

関連する問題