Doğru bir şekilde anlıyorsam, İşlem'in iki ilişki aracılığıyla Hesapla ilişkili olmasını istersiniz: debitAccount
ve creditAccount
, evet? Ve ters ilişkiler kurmayı merak ediyorsunuz. Kısaca, bir ilişki sadece bir başka ilişkinin tersi olabilir. Yani,ve creditAccount
ve creditAccount
'un tersi olan transactions
adlı bir ilişki oluşturamayacaksınız. Bunun yerine, debitTransactions
ve creditTransactions
gibi, iki ilişki oluşturmanız gerekir ilişkiler setleri (özellikle, NSSet
olarak modellenmiş olduğundan,
Şimdi (bunları daha uygun adlar ... düşün eminim) s), hesaba dahil olan tüm işlemleri almak için belirli bir Hesap için creditTransactions
ve debitTransactions
ilişkilerini birleştirebilirsiniz.
bir (muhtemelen daha iyi) bir alternatif olarak bir hesabı tanımlayan hem Account
ve Transaction
bir bire bir ilişki olarak accountRole
gibi bir özellik, sahip olduğu TransactionAccount
gibi bir ismi olan bir ara varlık kullanmak olacaktır söz konusu işleme göre borç veya kredi hesabı. Transaction
ve Account
'da transactionAccounts
gibi bir adla çoktan çok ilişki oluşturursunuz. Bu şekilde, böyle bir şey yazabilirsiniz:
[account valueForKeyPath:@"transactionAccounts.transaction"]
belirli bir hesap için tüm işlemleri alır. Ayarı yalnızca hesabın banka/kredi hesabı olduğu işlemlere göre filtrelemek için NSPredicate
kullanabilirsiniz.
Dikkatli olun. Ters ilişkilerin nedeni, modelin tutarlılığını sağlamaya yardımcı olmalarıdır. Bir ilişkinin hedefi olan ve tersi olmayan bir nesneyi silerseniz, söz konusu ilişkiyi kaldırdığınızdan emin olun, aksi takdirde geçersiz başvurularla sonuçlanırsınız. – Alex
Bu yöntem, "-getTransactions" olarak adlandırılmamalıdır çünkü bir işlemlerin bir koleksiyonunu referans olarak döndürmez. "-allTransactions" veya benzeri bir şey kullanın. –