sud*_*-rf 20 iphone crash xcode core-data objective-c
我有一个工作正常的项目.检查了"核心数据",并设置了数据模型.我今晚才开始添加几个实体和属性.当我尝试现在运行我的应用程序时,它甚至不会加载.它只是在我身上崩溃了.
这是错误:
'NSInvalidArgumentException', reason: 'executeFetchRequest:error: A fetch request must have an entity.'
我真的很害怕,因为我没有这个的备份,如果我不能让它工作,我不知道我会做什么.:)
提前致谢!
编辑:我厌倦了我的数据,所以我只是将一个新的空白xcdatamodel复制到我的项目中,我将重新开始.谢谢您的帮助!
War*_*shi 16
如果您使用的是MagicalRecored带有Swift:
确保@objc在Swift NSManagedObject子类中使用指令使类可以从MagicalRecord库中访问Objective-C代码
@objc(MyEntity)
class MyEntity: NSManagedObject {
@NSManaged var myAttribute: Int16
}
Run Code Online (Sandbox Code Playgroud)
sam*_*ize 12
我有同样的错误.
对我来说,这是因为我添加了一个新的模型版本,但我没有将其设置为"当前版本".粗心的我!要修复,请选择xcdatamodel,单击设计>数据模型>设置当前版本.然后xcdatamodel文件将有一个绿色勾号.
希望有所帮助.
这是为我解决的问题:
当我转换到 Swift 3 时,Xcode 在声明一个 new 时给了我一个错误NSFetchRequest,说它需要一个类型。添加类型后,我做了其他人会假设的事情;如果输入了请求,为什么要指定实体名称?所以,我删除了它。
这实际上是我的错误。
斯威夫特 2.2:
let request = NSFetchRequest(entityName: "MyEntity")
Run Code Online (Sandbox Code Playgroud)
当我第一次转换为 Swift 3 时:
let request = NSFetchRequest<MyEntity>()
Run Code Online (Sandbox Code Playgroud)
那是给我一个错误。我结束了这个:
let request = NSFetchRequest<MyEntity>(entityName: "MyEntity")
Run Code Online (Sandbox Code Playgroud)
一切正常。就个人而言,如果您正在输入请求,我不确定为什么需要指定实体名称。也许他们会在某个时候更新(我希望)
我在苹果开发者论坛中找到了这个解决方案,这正是我的问题!
解决方案是上下文必须在 struct App 中定义。不在环境参数中
import SwiftUI
@main
struct CoreDataDemoApp: App {
private let context = CoreDataStack.context.
var body: some Scene {
WindowGroup {
ContentView()
.environment(\.managedObjectContext, context)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27031 次 |
| 最近记录: |