私はマルチスレッドコアデータダウンローダを実装しています。2つの異なるスレッドから一意のエンティティIDを持つコアデータ永続ストアへの同時保存
エンティティに一意の文字列属性を持つオブジェクトを保存している間に、オブジェクトを倍増させることに問題があります。
2つのスレッドが同じURLから同時にダウンロードされている場合(つまり、アップデータタイマーが起動し、アプリケーションがフォアグラウンドに入るため、ユーザーがupdateメソッドを呼び出す)、永続ストアの一意の属性値を持つオブジェクトの存在を確認できません倍増する。
オブジェクトを2倍にすることを避けるにはどうしたらよいですか?パフォーマンス面で最高の解決策は何ですか?
説明:(申し訳ありませんが、私はまだ画像を投稿カント) http://i.stack.imgur.com/yMBgQ.png
パウルベイリー、deanWombourne、ありがとうございます。 私はこの方法で、objectForKey:NSMutableDictionaryの存在をチェックしました。ここでkeyは[url absoluteString]です。 そしてないdeanWombourne numConcurrentOperations = 1で私のCoreDataUpdateManager.hは、いくつかの輸入業者(XML、JSONなど)の抽象工場が含まれていることであり、多くのスレッドで異なるエンティティのためのデータをダウンロードするために、キュー内の操作を管理する理由。 勇敢な解決策ではありませんが、機能します) – Renatus