我有实体Question
。实体Question
具有属性Number
。我需要每20个问题取一次:1,21,41,61等。我该怎么做?
答案 0 :(得分:5)
像往常一样创建NSFetchRequest
,以及使用模数运算符的NSPredicate
实例,例如以下未经测试的谓词:
NSPredicate *idPredicate = [NSPredicate predicateWithFormat:@"modulus:by:(Number, 20) == 1"];
将谓词添加到获取请求中,并像往常一样进行提取。
或者创建包含NSSet
的{{1}}个ID值,并将其与谓词一起使用:
{1, 21, 41, ...}
我没有对此进行过测试,但我认为,无论采用哪种方法都可以让你接近。
答案 1 :(得分:0)
可以为最后一位数字创建一个带 NSPredicate 的搜索掩码。如果您的问题少于1,000,000,我会提取所有问题并过滤数字,并示意:BOOL keepNumber = ((record.Number % 20) == 1)
。一般来说,iPad / iPhone RAM / CPU GHz / Core Data智能手机正在上升,简单GET的性能成本不太可能重要,特别是与更复杂的GET相比,因为Core Data中的搜索谓词仍然需要检查每条记录。