我想通过指定范围来查询sqllite表。因此,就像给我所有ID列在3000到3010之间的记录一样。
我尝试了Apple的建议,但没有成功。这是我尝试过和失败的。
NSPredicate *betweenPredicate =
[NSPredicate predicateWithFormat: @"attributeName BETWEEN %@", @[@1, @10]];
我有2个字符串,分别称为start和end。我更新了Apple的示例,如下所示。
NSPredicate *betweenPredicate =
[NSPredicate predicateWithFormat: @"%@ BETWEEN %@", columnName, @[start,end]];
当我对上面的谓词执行executeFetchRequest时,即使表具有与谓词匹配的记录,我也会获得0条记录。有人可以指出我出问题的地方吗?
您必须%K
对属性名称使用格式说明符:
[NSPredicate predicateWithFormat: @"%K BETWEEN %@", columnName, @[start,end]];
如果这不起作用(我从未在核心数据获取请求中使用过“ BETWEEN”),则可以用等效谓词替换它
[NSPredicate predicateWithFormat: @"%K >= %@ AND %K <= %@",
columnName, start, columnName, end];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句