2013-01-31 42 views
0

我试图从Core Data获取“分页”实体时遇到了一些奇怪的事情。带fetchOffset的NSFetchRequest不会返回预期的结果

这里是我使用的抓取代码:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"User" 
              inManagedObjectContext:self.managedObjectContext]; 
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"userIdentifier beginswith[cd] %@ AND selected == 1",userIdentifier]; 
fetchRequest.fetchOffset = offset; 
fetchRequest.fetchLimit = limit; 
[fetchRequest setEntity:entity]; 
NSLog(@"offset %d limit %d",fetchRequest.fetchOffset,fetchRequest.fetchLimit); 

NSError *requestError = nil; 
NSArray *items = [self.managedObjectContext executeFetchRequest:fetchRequest 
                  error:&requestError]; 
NSLog(@"fetched items count = %d",items.count); 

而且这里是日志:

2013-01-31 16:01:28.127 offset 0 limit 100 
2013-01-31 16:01:28.128 fetched items count = 6 
2013-01-31 16:01:40.533 offset 1 limit 100 
2013-01-31 16:01:40.535 fetched items count = 5 
2013-01-31 16:01:53.029 offset 2 limit 100 
2013-01-31 16:01:53.032 fetched items count = 4 
2013-01-31 16:01:55.468 offset 3 limit 100 
2013-01-31 16:01:55.470 fetched items count = 3 
2013-01-31 16:02:00.776 offset 4 limit 100 
2013-01-31 16:02:00.779 fetched items count = 2 
2013-01-31 16:02:02.325 offset 5 limit 100 
2013-01-31 16:02:02.328 fetched items count = 1 
2013-01-31 16:02:03.837 offset 6 limit 100 
2013-01-31 16:02:03.839 fetched items count = 0 
2013-01-31 16:02:07.714 offset 6 limit 100 
2013-01-31 16:02:07.717 fetched items count = 0 

在这个测试中我有6项为 “用户”。

我在做什么错?

谢谢

回答

4

您的日志表明一切都按预期工作。

恭喜!

+0

是啊,我发现这个问题。 – user1078065

1

发现了问题:

fetchRequest.fetchOffset = offset*limit;