Core data 具有核心数据的SwiftUI:具有谓词崩溃的获取请求
我已成功地将核心数据添加到我的SwiftUI项目中。我需要按类型筛选结果。当我向提取请求添加谓词时,应用程序会在包含提取请求的视图尝试加载时崩溃 错误是线程1:EXC\u BAD\u访问(代码=1,地址=0x1)Core data 具有核心数据的SwiftUI:具有谓词崩溃的获取请求,core-data,swiftui,Core Data,Swiftui,我已成功地将核心数据添加到我的SwiftUI项目中。我需要按类型筛选结果。当我向提取请求添加谓词时,应用程序会在包含提取请求的视图尝试加载时崩溃 错误是线程1:EXC\u BAD\u访问(代码=1,地址=0x1) @Environment(\.managedObjectContext)var managedObjectContext @FetchRequest(实体:Task.entity(), sortDescriptors:[ NSSortDescriptor(键路径:\Task.type,
@Environment(\.managedObjectContext)var managedObjectContext
@FetchRequest(实体:Task.entity(),
sortDescriptors:[
NSSortDescriptor(键路径:\Task.type,升序:true),
NSSortDescriptor(键路径:\Task.totalScore,升序:false),
],
谓词:NSPredicate(格式:“type==%@”,Int16(1))//这是导致应用程序崩溃的行
var任务:FetchedResults
如果我将Int16(1)更改为Int16(0),应用程序不会崩溃,但列表中不会显示任何数据
这是我第一个使用核心数据的应用,所以我需要帮助。感谢andrewbuilder。他让我朝正确的方向看。使用需要Int的谓词的正确方法是:
predicate: NSPredicate(format: "type == %i", Int16(1)))
当我应该使用%I时,我正在使用%@。您也可以将int设置为NSNumber对象:
NSPredicate(format: "type == %@", @(1))
我怀疑您的问题在于谓词格式。%@需要一个
字符串
或一个Swift可以隐式转换为字符串
的值,那么对于整数
,您会使用哪个占位符呢?
NSPredicate(format: "type == %@", @(1))