Ios 尝试使用谓词从核心数据swift 3获取不同行时发生崩溃
我正在尝试从核心数据中获取不同行的数组,我正在尝试下面的代码Ios 尝试使用谓词从核心数据swift 3获取不同行时发生崩溃,ios,swift,core-data,distinct,predicate,Ios,Swift,Core Data,Distinct,Predicate,我正在尝试从核心数据中获取不同行的数组,我正在尝试下面的代码 func fetchDataFromLocalDB() { if #available(iOS 10.0, *) { let appDelegate = UIApplication.shared.delegate as! AppDelegate let managedContext = appDelegate.persistentContainer.viewContext l
func fetchDataFromLocalDB() {
if #available(iOS 10.0, *) {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let managedContext = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Session_Subjects")
let predicate = NSPredicate(format: "dmode_id == %@", "\(User.deleveryMode)")
request.resultType = .dictionaryResultType
request.propertiesToFetch = ["subject_id"]
request.returnsDistinctResults = true
request.predicate = predicate
do{
// Here my app is crashing
arrResultSubject = try managedContext.fetch(request) as! [Session_Subjects]
}
catch {
// print(eror)
}
} else {
// Fallback on earlier versions
}
//For data fetch in coredata
let sectionIndex = IndexSet(integer: 0)
self.tableSubjectView.reloadSections(sectionIndex, with: .automatic)
}
func fetchDataFromLocalDB(){
如果可用(iOS 10.0,*){
让appDelegate=UIApplication.shared.delegate为!appDelegate
让managedContext=appDelegate.persistentContainer.viewContext
let request=NSFetchRequest(entityName:“会话主题”)
let predicate=NSPredicate(格式:“dmode\u id==%@”,“\(User.deleveryMode)”)
request.resultType=.dictionaryResultType
request.propertiesToFetch=[“subject\u id”]
request.returnsDistinctResults=true
request.predicate=谓词
做{
//我的应用程序正在崩溃
arresultsubject=尝试managedContext.fetch(请求)as![会话主题]
}
抓住{
//打印(eror)
}
}否则{
//对早期版本的回退
}
//用于在coredata中获取数据
让sectionIndex=IndexSet(整数:0)
self.tableSubjectView.reloadSections(sectionIndex,带:。自动)
}
但当在[Session_Subjects]上面的值是coredata类的数组时,我就崩溃了
提前感谢。通常会有与崩溃相关的错误消息,这些消息通常会提供出错的详细信息。你收到了什么消息?不要注释掉你的错误处理代码!如果返回数据时出现任何问题,如果您使用as!-将此替换为as?您将能够优雅地处理问题设置此错误“无法将'nsknownkeysdirectionary1'(0x10b6ceaf8)类型的值强制转换为'projname.classname'”