0

私はこれにタイトルを付ける方法さえ知りません:

メーカー エンティティとモデル エンティティがあり、1 対多の関係があるとします。各メーカーは複数のモデルを持つことができます (これらを例として使用します)。

製造元には tableview とその独立した fetchedResultsController があり、製造元のセルを押すと、独自の tableview と fetchedResultsController を持つモデル viewcontroller に移動し、関連する追加モデルを表示します。

モデルの 1 つをコピーしたり、別のメーカーにカットしたりしたいとしましょう。次のようなスタイルの方法を考えていました。

-(void)copyThis:(Model*)model toThat:(Manufacturer*)manufacturer

適切な製造元オブジェクトと適切なモデル オブジェクトを取得していますが、相互に挿入するにはどうすればよいですか?

4

2 に答える 2

0

コピーする

Model *newModel = [NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:self.context];
newModel.property = model.property; //For every property
model.relationShipName = manufacturer;
[self.context insertObject:copyModel];

切る

model.relationShipName = manufacturer;

(xcdatamodeld があり、Model および Manufacturer エンティティの NSManagedObjectSubclass を生成していると仮定します)

于 2013-07-26T00:20:13.790 に答える
0

コピーで何を達成したいですか?正確なパラメータが他のメーカーに追加された「新しい」モデルが必要ですか、それとも同じモデル オブジェクトとの関係が必要ですか?

Model オブジェクトの単一のインスタンスを保持したい場合:

Manufacturer *fromManufacturer = ...
Model *model = [[fromManufacturer models] objectAtIndex:...];
Manufacturer *toManufacturer = ...

[toManufacturer insertModelObject:model];

if (isCut) [fromManufacturer removeModelObject:model];

insertModelObjectおよびメソッドを自動的に取得するには、 removeModelObjectXcode を使用してNSManagedObjectサブクラスを自動的に生成します。CoreData Model ファイルを見ているときは、[エディター] メニューの下にあります。メソッドとオブジェクトの名前は、作成した CoredData モデル構造と関係名によって異なる場合があることに注意してください。

于 2013-07-26T00:35:53.313 に答える