Two things:

1. No, doing a string comparison with contains (and case and diacritical
folding active) is one of the slower kinds of string comparison. Straight
equality should be much faster.

2. You say that there are two entities, with a relationship defined. Why,
then, are you doing a string comparison in this predicate? Checking the
value of the relationship should be much faster.

Sixten


On Sat, Mar 1, 2014 at 5:22 AM, Koen van der Drift <
koenvanderdr...@gmail.com> wrote:

> Consider two entities in a many-to-many relationship: Library and Book. In
> a NSFetchResultController backed UITableView, I like to show all the books
> from one library, so I constructed the following fetch request:
>
>     NSFetchRequest *fetchRequest = [NSFetchRequest
> fetchRequestWithEntityName: @"Book"];
>     NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:
> @"date" ascending: YES];
>     [fetchRequest setSortDescriptors: @[sort]];
>
>     NSPredicate *predicate = [NSPredicate predicateWithFormat: @"libraries
> contains[cd] %@", self.library];
>     [fetchRequest setPredicate: predicate];
>
> which is then fed into the NSFetchedResultController when the view opens.
>
> There is a noticeable delay of a few 100 ms when the view opens, and I
> suspect that the predicate I have is not optimal by using 'contains'.
>
> Is there a way to improve on this?
>
> Thanks,
>
> - Koen.
>
>
> _______________________________________________
>
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/himself%40sfko.com
>
> This email sent to hims...@sfko.com
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to