如何在Swift中的NSManagedObject子类中向关系属性添加对象?
在Objective中,当从数据模型在Xcode中生成NSManagedObject子类时,有一个自动生成的类扩展,其中包含如下声明:
@interface MyManagedObject (CoreDataGeneratedAccessors)
- (void)addMySubObject: (MyRelationshipObject *)value;
- (void)addMySubObjects: (NSSet *)values;
@end但是,Xcode目前缺乏Swift类的类生成能力。
如果我试图直接调用Swift对象上的等效方法:
myObject.addSubObject(subObject)...I在方法调用上得到一个编译器错误,因为这些生成的访问器是不可见的。
我已经将relationship属性声明为@NSManaged,如文档中所述。
或者,对于具有关系的数据模型,我必须恢复到objects对象吗?
发布于 2016-09-20 03:10:33
从Xcode 8和Swift 3.0开始,Xcode现在为关系生成访问器。例如,我有一个NSManagedObject类商店,它与条目有一对多的关系;我称之为关系SellsItems。生成的Store类现在具有以下从SellsItems中添加和删除的扩展。向关系中添加或删除项就像调用这些函数一样简单。
// MARK: Generated accessors for sellsItems
extension Store {
@objc(addSellsItemsObject:)
@NSManaged public func addToSellsItems(_ value: Item)
@objc(removeSellsItemsObject:)
@NSManaged public func removeFromSellsItems(_ value: Item)
@objc(addSellsItems:)
@NSManaged public func addToSellsItems(_ values: NSSet)
@objc(removeSellsItems:)
@NSManaged public func removeFromSellsItems(_ values: NSSet)
}https://stackoverflow.com/questions/24146524
复制相似问题