Alex
Alex

Reputation: 4190

What is the best way to query the row count from Core Data?

I am trying to get the number of rows for a given request. The only obvious way I've found to accomplish it is:

NSManagedObjectContext *context;
NSFetchRequest *request;

  ...

NSInteger count = [[context executeFetchRequest:request error:&error] count];

This seems wasteful to me, building an entire array of a large database's objects, just to find out how many there are. Is there a better way to accomplish this, in a "Core Data" way?

Thanks for the help!

Upvotes: 24

Views: 8494

Answers (1)

Jim Correia
Jim Correia

Reputation: 7084

NSManagedObjectContext has a method which evaluates the count for a fetch request:

- (NSUInteger)countForFetchRequest:(NSFetchRequest *)request error:(NSError **)error;

See the API documentation.

Upvotes: 60

Related Questions