Swift dynamicCast错误,同时插入新的对象到数据库

我有一个字典,我有我想要插入到数据库中的所有数据作为新的对象。 问题是当我尝试抛出新创build的对象,它使我例外:

libswift_stdlib_core.dylib`swift_dynamicCast: 

汇编代码的一部分。 我使用的代码是这样的:

  var group:Group if (array.count == 0) { group = NSEntityDescription.insertNewObjectForEntityForName("Group", inManagedObjectContext:appDelegate.managedObjectContext) as Group } 

而Group类的结构是这样的:

  @objc(Group) class Group:NSManagedObject{ @NSManaged var createDate:NSString @NSManaged var groupPictureUrl:NSString @NSManaged var groupTypeId:NSString @NSManaged var isDepartment:NSString @NSManaged var lastMessageRead:NSString @NSManaged var name:NSString @NSManaged var unreadMessageCount:NSString @NSManaged var groupId:NSString @NSManaged var lastSync:NSString } 

我也有一个名为AppDataNSManagedObject的子类,它具有与Group类相同的结构。 而在插入我的代码的一部分,如果我用AppDatareplaceGroup它的作品,我可以插入到AppData表。 正如我之前所说,除了参数外,它们具有相同的结构。 但是当我尝试插入Group对象时,它给了我dynamic的强制转换exception。 我怎么解决这个问题?

我通过不同的方式初始化实体对象来解决这个问题,如果你实现从超类(NSManagedObject)的启动方法,如:(在Group.swift中)

  init(entity: NSEntityDescription!, insertIntoManagedObjectContext context: NSManagedObjectContext!) { super.init(entity: entity, insertIntoManagedObjectContext: context) } 

你可以像这样创build对象:

  var desc:NSEntityDescription = NSEntityDescription.entityForName("Group",inManagedObjectContext:appDelegate.managedObjectContext) var group:Group = Group(entity:desc, insertIntoManagedObjectContext: appDelegate.managedObjectContext) 

我读过的大部分解决scheme都是这样开始的:

  var group:Group = NSEntityDescription.insertNewObjectForEntityForName("Group", inManagedObjectContext:appDelegate.managedObjectContext) as Group 

所以这是问题和对象不能被铸造到自定义托pipe对象类用这种方法。 谢谢大家。