• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSPredicate speed improvement?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSPredicate speed improvement?


  • Subject: Re: NSPredicate speed improvement?
  • From: Koen van der Drift <email@hidden>
  • Date: Sat, 01 Mar 2014 10:33:23 -0500

You are right about the [cd], which is not supposed to be here, blame it on poor copy-paste skills.

So how can I fix the predicate to compare entities?

- Koen.

> On Mar 1, 2014, at 10:22 AM, Sixten Otto <email@hidden> wrote:
>
> 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 <email@hidden> 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 (email@hidden)
>>
>> 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:
>>
>> This email sent to email@hidden
>
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden


  • Follow-Ups:
    • Re: NSPredicate speed improvement?
      • From: Sixten Otto <email@hidden>
References: 
 >NSPredicate speed improvement? (From: Koen van der Drift <email@hidden>)
 >Re: NSPredicate speed improvement? (From: Sixten Otto <email@hidden>)

  • Prev by Date: NSDocument save incremental file package in-place
  • Next by Date: Re: NSDocument save incremental file package in-place
  • Previous by thread: Re: NSPredicate speed improvement?
  • Next by thread: Re: NSPredicate speed improvement?
  • Index(es):
    • Date
    • Thread