iPad アプリにコア データを追加中です。私の一般的な手順は、コードをアプリ デリゲートに配置してテストすることです。コードが適切に解析されたことに満足したら、アプリ内の別の場所にある適切なメソッドにコードを移動します。これは、これまでオブジェクトの追加で機能していました。しかし、オブジェクトの削除に問題があります。それらを選択して削除することで、アプリのデリゲートからそれらを削除できます。現在、コアデータコードが機能するまでデータベースをきれいに保つために、アプリの起動時にそれらをすべて削除しています。
私のワークフローはこれで十分です。私が今抱えている問題は、適切な場所からオブジェクトを削除することです。私のセットアップを簡単に説明できるかどうか見てみましょう。
私は 2 つのクラスを持っています。この議論のために、それらCar
を呼び出しましょう。Tire
慣習が何であるかわからないので、独自の慣習を思いつきました。つまりC_
、関連付けられた Core Data オブジェクトの名前の先頭に追加して、これらのオブジェクトに関連付けられたオブジェクトを格納するというものです。したがって、追加のクラスが 2 つC_Car
あり、C_Tire
. 各車には複数のタイヤを装着できるため、 の でCar
ある プロパティtires
がNSSet
ありTire *
ます。さらに、 にはof typeCar
というプロパティがあり、各オブジェクトが関連するコア データ オブジェクトを追跡できるように、 of type というプロパティがあります (CD はコア データ用です) 。CarCD
C_Car *
Tire
TireCD
C_Tire *
Xcode は、オブジェクトを追加または削除する便利なメソッドを構築します。その中には、車にタイヤを追加する方法があります。私はそれを次のように使用します:
tire.tireCD = tireCD; //tire is an object of type Tire *, and tireCD is an object of type C_Tire *.
[self.carCD addTireObject:tireCD];//self.carCD is a property in my view controller of type CarCD *, and tireCD is a local object of type TireCD *.
さらに、車からタイヤを取り外す便利な方法があり- (void)removeTireObject:(C_Tire *)value;
ます。私が持っていたView Controllerのどこにでもあると考えました:
[tireObject removeFromSuperview];//tireObject is a (Tire *) object.
私は単にそれを次のように変更します:
[carObject removeTireObject:tireObject.tireCD];
[tireObject removeFromSuperview];
NSSet
最初の行では、コア データ オブジェクトからオブジェクトを削除する必要があります。2 行目は、アプリで使用されている car オブジェクトからオブジェクトを削除します。
問題は、このコードが実行されたときに、デバッガー ウィンドウに SQL が生成されていないことです。何か不足していますか?
また、命名規則についてコメントしたい場合は、今こそ慣習的なものを採用するときです。