Скажем, у меня есть подкласс NSManagedObject
, называемый MyObject
, и подкласс, который называется User
.Наследование при инициализации подкласса NSManagedObject
Каждый из этих подклассов имеет конкретный метод вставки, называемый class func createInManagedObjectContext(managedObjectContext: NSManagedObjectContext, propertiesDictionary: NSDictionary) -> User/MyObject?
, который сам использует метод NSEntityDescription.insertNewObjectForEntityForName
для вставки нового объекта.
Как правильно использовать наследование для установки свойств MyObject
в объекте User
?
Должен ли я создать новый MyObject
в методе User
, установите User
свойства этого нового объекта затем удалить MyObject
поэтому он не спасутся? Или я пытаюсь изобрести колесо здесь?
Update с кодом:
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”]
}
Это то, что моя структура выглядит код. Но когда я звоню createInManagedObjectContext
на User
, свойство 'property' в MyObject
не устанавливается, несмотря на то, что используется ключевое слово переопределения. Что мне не хватает?
Благодаря
Я думаю, что мое замешательство связано с методом 'insertNewObjectForEntityForName'. Поскольку оба пользовательских инициализатора используют этот метод, чтобы я предположил/подумал, что будут обнаружены два объекта. –
. См. Обновление с примером кода. –