Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data 具有核心数据的SwiftUI:具有谓词崩溃的获取请求_Core Data_Swiftui - Fatal编程技术网

Core data 具有核心数据的SwiftUI:具有谓词崩溃的获取请求

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,

我已成功地将核心数据添加到我的SwiftUI项目中。我需要按类型筛选结果。当我向提取请求添加谓词时,应用程序会在包含提取请求的视图尝试加载时崩溃

错误是线程1:EXC\u BAD\u访问(代码=1,地址=0x1)

@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))