私は、プログラムでコアデータオブジェクトを更新する方法を知りたいと思います。しかし、オブジェクトはNSSetです。だから私は、以下のスキームでこれをまとめることができます。プロパティとProperty_has_typologyの間に1対多の関係がありコアデータを使用してNSSet(一対多)を格納する方法は?
Property
---------
name
price
typology
Property_has_typology
---------------------
typology_id
property
。 1つのプロパティとしてBed &朝食、ヴィラ、ホテル、マンション、カントリーハウスなどのいくつかの類型(別名カテゴリ)を持つ可能性があります。
テーブルビューで複数の行を選択させ、をクリックしてを保存すると、これらの変更を保存します。だから私は実行します。
NSMutableArray *storeItems = [[NSMutableArray alloc] init];
//Get selected items
for (int i = 0; i < [items count]; i++) {
Properties_has_typology *typo = [NSEntityDescription insertNewObjectForEntityForName:@"Properties_has_typology"
inManagedObjectContext: [PropertyProvider sharedPropertyProvider].context];
typo.typology_id = [NSNumber numberWithInt: (int)[items objectAtIndex:i]];
typo.property = property;
[storeItems addObject: typo];
}
//Store the items for the Property and save it
if ([storeItems count] > 0) {
NSLog(@"Going to save...");
NSSet *storeSet = [[NSSet alloc] initWithArray:storeItems];
property.typology = storeSet;
[property save];
[storeSet release];
}
は、これはちょっと働き、問題は、しかし、それは本当に既存の値を更新しないことです。それは単にそれを上書きします。私は私が私のデータベースに次のように取得したい二回(単なる例として)同じ2つの項目を保存するのであれば:(
PK TYPOLOGY
------------
1 |
2 |
3 | 4
4 | 6
そうです、彼らは保存されているが、それはまた、空の行を作成し、それらをクリアそれらを削除/更新する代わりに)。
ご協力いただければ幸いです。ありがとう!
'deleteObject'は実際に私が探していたものです。今私はすべてのエントリを完全に削除し、新しいものを挿入することができます。ありがとう! – Jules