ios - NSPredicate execureFetchRequest 不工作 - 可能是由于字符串中的空格

标签 ios core-data nspredicate executefetchrequest

我试图在 CoreData 中搜索与 recordId 和字符串名称都匹配的对象,但它并不总能找到该对象。 例如,我正在搜索 ID 为 1000 且名称为“The Brown Family”的对象(请注意“The”和“Brown”之间的 2 个空格)。 如果我使用:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(recordId == %@") AND (name like[cd] %@)", recordId, name];

对于 recordId=1000 和 name="The Brown Family",提取请求返回 nil。 如果我使用:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(recordId == %@"),   recordId];

当 recordId=1000 时,它找到了对象。如果我打印对象的名称属性,我会得到“The Brown Family”。 所以该对象具有正确的 ID 和名称,但我的 fetchRequest 失败了。 我做错了什么?

最佳答案

您可能需要将值括在单引号中...

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(recordId == %@) AND (name like[cd] '%@')", recordId, name];

关于ios - NSPredicate execureFetchRequest 不工作 - 可能是由于字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34633764/

相关文章:

ios - 顺时针图像旋转动画

cocoa - 暂时禁用NSArrayController的filterPredicate,或者咨询ManagedObjectContext?

swift - 过滤子列表

ios - NSPredicate 在多对多关系上计数 > 0

ios - CoreData:具有多个关系的NSPredicate

ios - 类型 'String' 的值没有成员 'substringToIndex' 未解析

ios - 将设备倾斜映射到玩家角色(等)的运动行为

ios - 如何获取 Moment 相册以及我的 collectionView 中的所有个人相册?

ios - Swift Core Data Batch Updating 创建重复记录而不是覆盖

swift - 保存上下文后,在核心数据中快速设置关系