gpt4 book ai didi

swift - 核心数据 NSEntityDescription.entityForName 返回 nil,但 managedObjectModel.entities 列出实体

转载 作者:搜寻专家 更新时间:2023-11-01 07:30:45 24 4
gpt4 key购买 nike

我正在尝试快速创建 NSManagedObject 的子类。我在模型编辑器中创建了两个名为 Pages 和 Book 的实体,并生成了它们的类文件。这是两个类:

@objc(Pages)
class Pages: NSManagedObject {

@NSManaged var pageNo: NSNumber

}

@objc(Book)
class Book: NSManagedObject {

@NSManaged var pageCount: NSNumber
@NSManaged var title: String
@NSManaged var fetchLastPage: [Pages]

}

作为创建页面实例的测试,我在 ViewDidLoad 中编写了这段代码,但由于找不到模型中的实体而失败了:

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

let managedContext = appDelegate.managedObjectContext!

var pages = NSEntityDescription.insertNewObjectForEntityForName("StoreTest.Pages", inManagedObjectContext: managedContext)

'StoreTest' 是我的应用程序的名称,它也在两个实体的模型编辑器中设置。为了查看发生了什么,我在创建实例之前添加了这段代码:

    var pagesEntity = NSEntityDescription.entityForName("StoreTest.Pages", inManagedObjectContext: managedContext)
println("pagesEntity = \(pagesEntity)")

var ents = managedContext.persistentStoreCoordinator!.managedObjectModel.entities
println("entities = \(ents)")

NSEntityDescription.entityForName 调用返回 nil,但对 managedObjectModel.entities 的调用返回两个实体。

我确定没有拼写问题。此外,managedObject 不是零。我的数据模型文件的目标已正确设置为我的应用程序模块。

我使用的是 xCode 6.4。

感谢您的帮助!

最佳答案

从实体名称中删除额外的 StoreTest.,您在那里不需要它,并且点可能会导致查找出现问题。

这实际上可能只是您对实体名称是什么感到困惑,它在模型中设置,然后您设置类名称(通常与实体名称相同)。

关于swift - 核心数据 NSEntityDescription.entityForName 返回 nil,但 managedObjectModel.entities 列出实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com