我正在创建一个NSFetchRequest,但如下创建时,它无法初始化(在调试器中返回)。
let request: NSFetchRequest<NSFetchRequestResult> = EntityName.fetchRequest()
但是,按以下方式创建时它可以完美工作:
let request: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "EntityName")
谁能告诉我为什么它会从底部开始而不是从顶部开始工作?顶部方式在使用它的其他三个类中均能完美运行。
最佳答案
我在测试目标上调用NSManagedObject.fetchRequest()
时遇到了相同的问题,但是我可以通过在托管对象上下文的perform(_:)
方法的一个块内调用它来修复它,如下所示:
context.perform {
let request = EntityType.fetchRequest()
(...)
}