【发布时间】:2016-01-06 12:57:45
【问题描述】:
我试图在 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,它会找到对象。如果我打印对象的 name 属性,我会得到“The Brown Family”。 因此,该对象具有正确的 id 和名称,但我的 fetchRequest 失败。 我做错了什么?
【问题讨论】:
-
尝试正确格式化您的问题(使用代码标签)
-
您是否有特殊原因要使用
LIKE而不是==? -
我想我是这样写的,认为它会接受单词之间有空格的名称,并且如果 recordId 匹配,那就足够了。
标签: ios core-data nspredicate executefetchrequest