2012-02-16 7 views
0

私はいくつかの深い関係を持つNSManagedObjectサブクラスを持っています。コアデータ内の複数のオブジェクトを削除する

ので、順序が(多)複数subordersを持って

suborder.items

order.subOrdersと亜目がに(複数の項目があります。ここでの影響を受けた関係は、(例えばのために)、以下のようにしています-たくさんの)。

私の注文には3つのサブオーダーがあり、各サブオーダーには3つのアイテムがあります。私は、ほぼ同時に、各サブオーダーから1つのアイテムを削除する必要があります。

だから、私は次のことを試してみた:私は、その後、再実行アプリ

for(Item *item in itemsToBeDeleted) { 
     [context deleteObject:item]; 
} 
[context save:&error]; 

、1つだけのアイテムが削除されたようです。したがって、残りの2つのアイテムを削除して(同じ方法を使用)、アプリを再実行しますが、もう一度1つだけ削除されています。

誰でも正しい方向に私を向けることができますか?

答えて

1

itemsToBeDeletedコレクションにItemオブジェクトを1つだけ入れていると思います。そのコレクションにどのように情報が埋め込まれているかを示すコードを投稿できますか?

+0

ありがとうMichal。私はNSLogで各反復が行われているので、コレクションには正しい数のオブジェクトがあります。コレクション内の各オブジェクトは、削除する必要のある正しいオブジェクトのようです。 –

+0

助けが必要な場合は、分析のためにコードをアップロードする必要があります。私は上記のコードに何か問題があるとは思わない。 –

+0

おかげでMichal。コードは実際にはちょうどそれよりずっと複雑です(削除部分自体は単純ですが)。これらの項目を反復処理するときに別のコードを使用し始めたときに問題は解決しました。私は削除するアイテムを収集するときに自分のメソッドの1つでエラーが発生したと仮定することができます。 –

0

コアデータモデルオブジェクトの右パネルを開くと、エンティティの削除ルールがあります。最上位のエンティティの削除ルールを「カスケード」に設定した場合、削除はその関係を伝播します。

Delete rule

関連する問題