0

私のデータモデルには次の関係があります。

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

次のように実装されます。

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

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

これで、アカウントが正常に作成され、Core Data に挿入されました。私の質問は、アカウントに開始残高を追加するにはどうすればよいですか? これは明らかにアカウントのトランザクションにすぎませんが、データ モデルで双方向 (つまり、接続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];
}
4

1 に答える 1

2

はい、transactionsaccountが逆の関係として定義されている場合は、

newTransaction.account = newAccount;

に自動的に追加newTransactionされnewAccount.transactionsます。

デバッガーで。を使用して簡単に確認できますpo newAccount

于 2012-09-05T10:55:18.280 に答える