ios - Swift:IOS7 设备上的核心数据 -> 第二个实体上的 entityForName 为 nil

标签 ios iphone core-data ios7 swift


我已经使用 Xcode 6 beta 2 在一个小的 iPhone 项目上测试了 swift。 该项目使用核心数据访问数据模型中的 2 个实体(用户/契约(Contract))。在 IOS 模拟器中一切正常。

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

    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)

错误: 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“+entityForName:无法在此模型中找到名为“Contract”的实体。”

最佳答案

目前看来是个bug。如这篇文章所述:https://devforums.apple.com/message/996259#996259 .

此错误的解决方法是使用 NSString 而不是传递 String 作为实体名称:

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

关于ios - Swift:IOS7 设备上的核心数据 -> 第二个实体上的 entityForName 为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440927/

相关文章:

ios - 从解析的 XML 将数据加载到 TableView

iphone - 使用 searchBar 搜索并显示 google 结果 :textDidChange:

ios - 从关系中添加/删除对象时更新属性

swift - 临时上下文中的 NSManagedObject 出现错误

ios - 我必须怎样做才能在 Storyboard 启动文件中为 View 添加约束?

iphone - 如何找到NSString使用的内存?

iphone - 如何在 iPhone 中不使用 UIPIckerviewcontroller 创建下拉列表?

ios - 如何修复: Terminating app due to uncaught exception 'NSUnknownKeyException'

c# - 从后台调用?

ios - 有没有办法让两次点击手势识别器具有不同的点击次数