• 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: Core Data NSPredicate
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Core Data NSPredicate


  • Subject: Re: Core Data NSPredicate
  • From: Andreas Grosam <email@hidden>
  • Date: Sat, 12 Mar 2011 14:17:05 +0100

On Mar 12, 2011, at 3:36 AM, Indragie Karunaratne wrote:

> I have an NSManagedObject that has the following string attributes:
>
> artist, albumArtist, composer, comments, and lyrics
>
> I need to write an NSPredicate that will take an array of search terms, and check if all of the above string attributes COMBINED contains every term in the search term array. I tried the following predicate format:
>
> NSArray *searchTerms = [NSArray arrayWithObjects:@"testing", @"search", nil];
> NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ALL %@ IN { artist, albumArtist, composer, comments, lyrics }", searchTerms];
>
> This triggered a parsing error and would not run. Is there any way I can do this in an NSPredicate, aside from creating a "search string" attribute in my data model containing a concatenated string of the above attributes?


You should not include the object where the predicate is run against into the parameters of the format string. Otherwise, you would get a constant expression, rather a predicate.

Furthermore, when specifying an embedded string-list you need to quote the string elements.

This should work then:

NSArray* terms = ...
NSPredicate* pred = [NSPredicate predicateWithFormat:@"ALL self IN {'artist', 'albumArtist', 'composer', 'comments'}"];

BOOL test = [pred evaluateWithObject:terms];


Note: you can use a ^block for the predicate as well.


Regards
Andreas_______________________________________________

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: Core Data NSPredicate
      • From: Indragie Karunaratne <email@hidden>
References: 
 >Core Data NSPredicate (From: Indragie Karunaratne <email@hidden>)

  • Prev by Date: UITextView making containing UIScrollView scroll
  • Next by Date: Re: Unique strings array
  • Previous by thread: Re: Core Data NSPredicate
  • Next by thread: Re: Core Data NSPredicate
  • Index(es):
    • Date
    • Thread