我有一個有多對多關係的雙核數據模型設置。如何添加並更新核心數據中的多對多關係?
class BuddyCD: NSManagedObject {
@NSManaged var memberOfBunches: NSSet
}
class BunchCD: NSManagedObject {
@NSManaged var bunchMembers: NSSet
}
旁註:CD意味着核心數據在這裏 我創建BunchCD的時候,我想很多哥們將其添加爲成員。
我在一堆類此方法:
class func createInManagedObjectContext (moc: NSManagedObjectContext, members: [BuddyCD]?) -> BunchCD {
let newBunch = NSEntityDescription.insertNewObjectForEntityForName(CoreDataConst.bunchModel, inManagedObjectContext: moc) as! BunchCD
if let membersNonOptional = members {
// Add members to this bunch
for member in membersNonOptional {
member.addToBunch(newBunch)
}
}
return newBunch
}
我在好友類此方法:
func addToBunch(bunch: BunchCD) {
var bunches = self.mutableSetValueForKey("memberOfBunches")
bunches.addObject(bunch)
}
我收到此錯誤:
2015-07-19 01:00:38.587 MyApp[34979:1885727] -[__NSSetIobjectAtIndex:]: unrecognized selector sent to instance 0x7fb7d3ecde30 2015-07-19 01:00:38.603 LunchBunch[34979:1885727] ***Terminating app due to uncaught exception'NSInvalidArgumentException', reason: '-[__NSSetI objectAtIndex:]: unrecognized selector sent to instance 0x7fb7d3ecde30'
什麼是將成員添加到核心數據中多對多關係的最佳實踐?
從我學過的東西--_many-to-many_不是一個好方法,你應該嘗試創建一箇中介表,它將使用_one-to-many_連接來連接它們。 (例如客戶和產品表需要一個交易表才能正確連接......) –
@IslamQ。不,多對多是推薦的方式。如果連接本身需要存儲其他數據,則只應具有「連接」表。 – Mundi
@Mundi我同意,感謝您的確認......在Swift的基礎上,這似乎並不容易或很常用,因爲缺乏多對多關係的教程......您知道任何好的關係嗎? – hoffware