Swift:IOS7设备上的核心数据 – > entityForName上的第二个实体是零

我已经使用Xcode 6 beta 2testing了一个小型的iPhone项目。该项目使用核心数据访问数据模型中的两个实体(用户/合同)。 在IOS模拟器内一切正常。

问题:当我为IOS7构build应用程序并在我的iPhone5s(运行IOS 7.1.1)上testing应用程序时,程序只能将数据保存到第一个实体中(如核心数据模型= User中所定义的)。 对于所有其他实体,NSEntityDescription.entityForName(…)是“nil”。 在managedObjectModel(println(managedObjectModel))中包含了所有实体。 似乎IOS7上的SQL数据库中包含的数据模型不正确? 有没有人有解决scheme/想法? 谢谢 :-)

var myAppDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate var myContext:NSManagedObjectContext = myAppDel.managedObjectContext println(NSEntityDescription.entityForName("User", inManagedObjectContext: myContext)) println(NSEntityDescription.entityForName("Contract", inManagedObjectContext: myContext)) var newContract:AnyObject = NSEntityDescription.insertNewObjectForEntityForName("Contract", inManagedObjectContext: myContext) newContract.setValue("" + txtContract.text, forKey: "contractName") myContext.save(nil) var newUser = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: myContext) newUser.setValue("" + txtUsername.text, forKey: "userName") newUser.setValue("" + txtPassword.text, forKey: "userPass") newUser.setValue(newContract, forKey: "contracts") // Save Relationship myContext.save(nil) 

错误:由于未捕获exception'NSInternalInconsistencyException',原因:'+ entityForName:无法在此模型中find名为'Contract'的实体。

这似乎是一个现在的错误。 正如在这篇文章中解释: https : //devforums.apple.com/message/996259#996259 。

这个bug的解决方法是使用一个NSString,而不是传递一个string作为实体名称:

  let myEntity: NSString = "EntityName" var fetchRequest = NSFetchRequest(entityName: myEntity)