2011-08-09 5 views
0

私は2つのコアデータエンティティ(クライアントとオーダー)を持っていますが、クライアントはオーダーの親です。 @property (nonatomic, retain) Client *client;コアデータの親エンティティプロパティの値

と使用して設定されます:クライアントは、このようなコントローラで宣言されている

NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext]; 
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity]; 
Order *newOrder = (Order *)[NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context]; 
newOrder.date = [NSDate date]; 
newOrder.client = self.client; 
NSError *error; 
if (![context save:&error]) 
    NSLog(@"Error saving entity: %@", [error localizedDescription]); 

- (void)setClient:(Client *)newClient 
{ 
    if (newClient != client) { 
     [client release]; 
     client = [newClient retain]; 
    } 
} 

問題は、私は「ときということです私はこのような新しい秩序を作成しています注文のクライアントオブジェクトのプロパティにアクセスしようとしています。 order.client.clientID私は(ヌル)値を取得していますが、すべてのクライアントに対して、最後に追加された順序です。クライアントは親として正しく保存されているようですが、特定のクライアントの新しい注文を追加すると忘れてしまいます。

答えて

0

ClientOrderとの関係は誰一度Client.order内の1つのOrderオブジェクトが存在することができるように、1対1で設定されています。新しいOrder - >Clientの関係を設定するたびに、直前のOrderオブジェクトが関係から外れます。

あなたがこの持っている:

Client{ 
    name:string 
    order<-->Order.client 
} 

Order{ 
    date:date 
    client<-->Client.order 
} 

...あなたが必要なとき:

Client{ 
    name:string 
    orders<-->>Order.client 
} 

Order{ 
    date:date 
    client<<-->Client.orders 
} 
+0

は確かに、私は..私はXcodeの4を使用していたとの関係を見ていない、昨日自分がして見つけました新しいレイアウトのためにタイプします.. – yannis