我试图在 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/