當您設置多對多關係時,CoreData會生成您需要的方法來添加它生成的文件中涉及的兩個實體之間的鏈接。例如,對於我使用的實體跟蹤,我與跟蹤記錄中名爲includesContact的實體聯繫人具有多對多關係。基於此,產生CoreData在文件音軌+ CoreDataProperties.swift以下方法鉤:
// MARK: Generated accessors for includesContact
extension Track {
@objc(addIncludesContactObject:)
@NSManaged public func addToIncludesContact(_ value: Contact)
@objc(removeIncludesContactObject:)
@NSManaged public func removeFromIncludesContact(_ value: Contact)
@objc(addIncludesContact:)
@NSManaged public func addToIncludesContact(_ values: NSSet)
@objc(removeIncludesContact:)
@NSManaged public func removeFromIncludesContact(_ values: NSSet)
}
它用於聯繫人實體的文件中生成反向方法鉤。
當我需要將一個Contact添加到includesContact關係時,我使用addIncludesContact和一個Contact參數。或者,我使用NSSet版本爲多個聯繫人添加關係。
例如,要添加一個聯繫人,myContact,一個叫做newRecord新的軌道,這種工作方式如下:
newRecord.addToIncludesContact(myContact)
對於存儲在陣列selectedContacts多個聯繫人,這是不言而喻如下:
newRecord.addToIncludesContact(selectedContacts as NSSet)
希望幫助...
不幸的是,我不知道斯威夫特。你知道Objective-C中是否有任何等價物? – user6631314
好的。找到了與objective-c等效的訪問器,但是它的工作原理是將selectedTag作爲數組中的一個對象放入NSSet中,如下所示。 _selectedTagInSet = [NSSet setWithObjects:_selectedTag,nil];一旦我這樣做了,核心數據就允許我設置與self.item.tag = _selectedTagInSet; 。 – user6631314
很高興,它的工作 - 抱歉,從來沒有拿起ObjC –