【发布时间】:2015-02-09 23:05:08
【问题描述】:
假设我有一个名为MyObject 的NSManagedObject 的子类和一个名为User 的子类。
每个子类都有一个名为class func createInManagedObjectContext(managedObjectContext: NSManagedObjectContext, propertiesDictionary: NSDictionary) -> User/MyObject? 的特定插入方法,它本身使用NSEntityDescription.insertNewObjectForEntityForName 方法插入一个新实体。
如何正确使用继承来设置User 对象中的MyObject 属性?
我是否应该在User 方法中创建一个新的MyObject,从这个新对象中设置User 属性,然后删除MyObject 这样它就不会被保存?还是我想在这里重新发明轮子?
更新代码:
class func createInManagedObjectContext(managedObjectContext: NSManagedObjectContext, propertiesDictionary: NSDictionary) -> MyObject?
{
let newObject = NSEntityDescription.insertNewObjectForEntityForName("MyObject", inManagedObjectContext: managedObjectContext) as MyObject
newObject.property = propertiesDictionary[“property”]
}
override class func createInManagedObjectContext(managedObjectContext: NSManagedObjectContext, propertiesDictionary: NSDictionary) -> User?
{
let newObject = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: managedObjectContext) as User
newObject.name = propertiesDictionary[“name”]
}
这就是我的代码结构。但是,当我在 User 上调用 createInManagedObjectContext 时,尽管使用了 override 关键字,但 MyObject 中的属性“property”并未设置。我错过了什么?
谢谢
【问题讨论】:
标签: ios swift inheritance core-data