无法为实体“位置”加载名为“MyLocations.Location”的类

Posted

技术标签:

【中文标题】无法为实体“位置”加载名为“MyLocations.Location”的类【英文标题】:Unable to load class named 'MyLocations.Location' for entity 'Location' 【发布时间】:2015-08-17 05:42:52 【问题描述】:

当我创建我的核心数据文件并将此代码添加到 done 方法以保存数据后,我收到了上述主题的错误找不到类。

它也显示错误

找不到类,使用默认的 NSManagedObject 代替

@IBAction func done()

    let hudView = HudView.hudInView(navigationController!.view, animated: true)

    hudView.text = "Tagged"

    let location = NSEntityDescription.insertNewObjectForEntityForName("Location", inManagedObjectContext: managedObjectContext) as! Location

    location.locationDescription = descriptionText

    location.category = categoryName

    location.latitude = coordinate.latitude

    location.longitude = coordinate.longitude

    location.date = date

    location.placemark = placemark

    var error: NSError?

    if !managedObjectContext.save(&error)
    
        println("Error: \(error)")

        abort()
    

    afterDelay(0.6) self.dismissViewControllerAnimated(true, completion: nil)

【问题讨论】:

你的项目目录中有 Location 类吗? 是的,但位置文件不是位置类 我的项目目录中的项目中也有位置类 是“类位置:NSManagedObject ”这样的吗? 是的,和你说的一样。 【参考方案1】:

您必须在 xcdatamodeld 文件中设置类。 转到您的 projectname.xcdatamodeld -> 选择 Location 表,然后选择数据模型检查器,如下面的屏幕截图所示并设置类。

希望这可能会有所帮助。

在您的代码中进行以下更改

 var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
 var context: NSManagedObjectContext = appDel11.managedObjectContext!
 var location = NSEntityDescription.insertNewObjectForEntityForName("Location", inManagedObjectContext: context) as! NSManagedObject

【讨论】:

得到同样的错误。但我之前已经这样做了,但它不起作用。 能不能把Location文件拖到项目主目录下再试试?

以上是关于无法为实体“位置”加载名为“MyLocations.Location”的类的主要内容,如果未能解决你的问题,请参考以下文章

CoreData:警告:无法加载名为的类

JPA/Hibernate 无法创建名为 Order 的实体

核心数据:“无法在此模型中找到名为 ... 的实体”(仅在设备上)

CoreData:“NSInternalInconsistencyException”,原因:“+entityForName:无法在此模型中找到名为“DocumentLocations”的实体。

MagicalRecord 获取关系 id 为 x 的一对多关系中的所有实体

Swift 3 核心数据 NSInternalInconsistencyException entityForName 无法在此模型中找到名为 Foo 的实体