程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了NSPredicate格式的第二个参数为“ Invalid predicate:nil RHS”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决NSPreDicate格式的第二个参数为“ Invalid preDicate:nil RHS”?

开发过程中遇到NSPreDicate格式的第二个参数为“ Invalid preDicate:nil RHS”的问题如何解决?下面主要结合日常开发的经验,给出你关于NSPreDicate格式的第二个参数为“ Invalid preDicate:nil RHS”的解决方法建议,希望对你解决NSPreDicate格式的第二个参数为“ Invalid preDicate:nil RHS”有所启发或帮助;

在所有当前的iOS和OS X平台上,Cint是32位整数,这是该%d格式在变量参数列表中所期望的格式。如果您传递64位整数,则读取下一个变量参数将读取额外的4个零字节。

下表显示了哪种整数类型的格式:

  格式C型Swift型
  -----------------------------------
  %d int Int32
  %ld long int Int
  %lld long long int Int64

对于无符号类型也是如此。

或者,将整数转换为NSnumber对象并使用%@格式,这适用于所有大小的整数。例:

let value = 1234
let preDicate = nspreDicate(format: "value = %@", value as NSnumber)

解决方法

这是我的NSPreDicate

print(searchTextField.text!)
let preDicate = NSPreDicate(format: "student.schoolClass.id = %d AND (book.title CONTAINS[cd] %@ OR student.username CONTAINS[cd] %@)",currentSchoolClass.id,searchTextField.text!,searchTextField.text!)

我要做的下一件事是:

fetchedResultsController.fetchrequest.preDicate = preDicate
print(fetchedResultsController.fetchrequest.preDicate!)
try! fetchedResultsController.performFetch() //here is the crash

控制台输出为:

j  
student.schoolClass.id == 1 AND (book.title CONTAINS[cd] nil OR student.username CONTAINS[cd] "j")

崩溃信息是:

CRASH: Invalid preDicate: nil RHS

是不是很奇怪

大佬总结

以上是大佬教程为你收集整理的NSPredicate格式的第二个参数为“ Invalid predicate:nil RHS”全部内容,希望文章能够帮你解决NSPredicate格式的第二个参数为“ Invalid predicate:nil RHS”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: