2012-09-05 37 views
0

我的数据模型有如下关系:核心数据 - 保存关系的技巧?

[Account] -|------o< [Transaction] 

作为实现:

// in Account.h 
@property (nonatomic, retain) NSSet *transactions; 

// in Transaction.h 
@property (nonatomic, retain) Account *account; 

现在,我已经成功地创建了一个帐户并将其插入到核心数据。我的问题是,如何向帐户添加起始余额?这显然只是账户上的一项交易,但在数据模型中,以下两种方式足以实现连接(即连接newAccount.transactions以及newTransaction.account)?

// we need to insert a new account 
Account *newAccount = [NSEntityDescription insertNewObjectForEntityForName:[Account entityName] inManagedObjectContext:self.managedObjectContext]; 

// . . . configure newAccount 

NSNumber *startingBalance = @([self.startingBalanceTextField.text floatValue]); 

NSError *error; 

// save the new account 
[self.managedObjectContext save:&error]; 

if(!error) 
{ 
    Transaction *newTransaction = [NSEntityDescription insertNewObjectForEntityForName:[Transaction entityName] inManagedObjectContext:self.managedObjectContext]; 

    // . . . configure newTransaction 

    // is this sufficient & proper? Will this add newTransaction to newAccount.transactions as well? 
    newTransaction.account = newAccount; 

    // save the starting balance 
    [self.managedObjectContext save:&error]; 
} 

回答

2

是的,如果transactionsaccount被定义为具有相反的关系,然后

newTransaction.account = newAccount; 

自动添加到newTransactionnewAccount.transactions

您可以使用po newAccount轻松验证该调试器。