1

I've encountered something strange when trying to get "paged" entities from Core Data.

Here is the code I use for fetching:

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);

And here are the logs:

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

For this test I had 6 entries for "User".

What am I doing wrong?

Thanks

2 Answers 2

4

Your logs indicate that everything is working as expected.

Congratulations!

Sign up to request clarification or add additional context in comments.

1 Comment

Yeah, i found the problem.
0

Found the problem:

fetchRequest.fetchOffset = offset*limit;

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.