如何在Swift中分配CoreData多对多关系? [英] How to assign CoreData many-to-many relationship in Swift?
问题描述
我有一个NSManagedObject类
class Disease:NSManagedObject {
@NSManaged var diseaseId:String
@NSManaged var diseaseName:String
@NSManaged var dogBreed:NSSet
}
如何向dogBreed添加新关系?如果我将var类型更改为NSMutableSet,更改不会保存到数据库。任何想法?
从Xcode 7和Swift 2.0开始,发布说明 17583057状态:
NSManaged属性可以与方法以及
属性一起使用,用于访问Core Data自动生成的
Key-Value-Coding兼容的许多访问器。
@NSManaged var employees:NSSet
@NSManaged func addEmployeesObject(employee:Employee)
@NSManaged func removeEmployeesObject(employee:Employee)
@NSManaged func addEmployees(employees:NSSet)
@NSManaged func removeEmployees(employees:NSSet)
这些可以在你的NSManagedObject子类中声明。 (17583057)
所以你只需要声明以下方法,CoreData将处理其余的操作:
@NSManaged func addDogBreedsObject(dogBreed:DogBreed)
@NSManaged func removeDogBreedsObject(dogBreed:DogBreed)
@NSManaged func addDogBreeds :NSSet)
@NSManaged func removeDogBreeds(dogBreeds:NSSet)
I have a NSManagedObject class
class Disease: NSManagedObject {
@NSManaged var diseaseId: String
@NSManaged var diseaseName: String
@NSManaged var dogBreed: NSSet
}
How do I add a new relationship to dogBreed? If i change var type to NSMutableSet, the changes are not saved to database. Any ideas?
As of Xcode 7 and Swift 2.0, the release note 17583057 states:
The NSManaged attribute can be used with methods as well as properties, for access to Core Data’s automatically generated Key-Value-Coding-compliant to-many accessors.
@NSManaged var employees: NSSet
@NSManaged func addEmployeesObject(employee: Employee)
@NSManaged func removeEmployeesObject(employee: Employee)
@NSManaged func addEmployees(employees: NSSet)
@NSManaged func removeEmployees(employees: NSSet)
These can be declared in your NSManagedObject subclass. (17583057)
So you just have to declare the following methods and CoreData will take care of the rest:
@NSManaged func addDogBreedsObject(dogBreed: DogBreed)
@NSManaged func removeDogBreedsObject(dogBreed: DogBreed)
@NSManaged func addDogBreeds(dogBreeds: NSSet)
@NSManaged func removeDogBreeds(dogBreeds: NSSet)
这篇关于如何在Swift中分配CoreData多对多关系?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!