私のデータモデルには次の関係があります。
[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];
}