У меня есть класс, который наследуется от NSManagedObject
. Я использую этот объект для данных модели, и он также сохраняется.Downcasting NSManagedObject в Swift Core Data
class Foo: NSManagedObject {
@NSManaged var firstVar: String
@NSManaged var secondVar: String
let entity = NSEntityDescription.entityForName("Foo", inManagedObjectContext: managedObjectContext)
let createdManagedObject = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedObjectContext) as? Foo
}
Я могу создать объект и получить экземпляр NSManagedObject
, но я не могу его обратное приведение фактического класса. На самом деле, если я опускаю его, то формирую необязательное значение, тогда я получу нулевое значение, и если я опустошу с распаковкой, тогда он сработает. Когда downcast с инспектором отладчика nil value показывает тип: Module.Foo, который, я считаю, является корнем проблемы.
Конечно, я попытался с именами класса в .xcmodel инспекторов, пытался назвать Entity в Module.Foo, но последний не допускаются, как из Xcode 7 больше в любом случае.
Все вместе: без успеха. Теперь мне нужно получить доступ к объекту Foo
через KV, что довольно неудобно.
Кто-нибудь еще решила эту проблему?
EDIT: Добавление кода для демонстрации создания и подбрасывания. У меня были проблемы с Xcode 7.0, а теперь с 7.1.1
Не могли бы вы показать, как вы его получите, и как вы его преуменьшаете? –
Пробовал ли вы различные решения в http://stackoverflow.com/questions/25076276/unable-to-find-specific-subclass-of-nsmanagedobject и http://stackoverflow.com/questions/26613971/coredata-warning- неспособные к нагрузке-класс по имени? Это происходит в вашей основной программе или модульном тесте или в рамках? –
Я на самом деле работаю над проектом с основными данными, и у меня нет проблем: 'self.entry = NSEntityDescription.insertNewObjectForEntityForName (имя_общества, inManagedObjectContext: managedObjectContext) как? Foo'. Можете ли вы опубликовать более подробную информацию? –