我正在尝试在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失败了。 我做错了什么?
答案 0 :(得分:1)
您可能需要将值括在单引号中...
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(recordId == %@) AND (name like[cd] '%@')", recordId, name];
答案 1 :(得分:0)
很抱歉,我知道现在的问题是什么!我正在寻找的名字后面有一个尾随空格。所以我一直在找" Toby"而#34; Toby"存储在Coredata中。 很抱歉浪费了所有人的时间。