On Fri, Jun 20, 2008 at 10:56 AM, Jesse Grosjean <[EMAIL PROTECTED]> wrote: > I'm having a hard time figuring out how to construct a query. The objects > involved are: > > Entry > - has many tags > > Tag > - name (string) > - value (string) > > I want to construct searches such as: > > - find all entries that have a the tag named "priority" with the > value "1". > > I can use [NSPredicate predicateWithFormat:@"ANY tags.name = %@", tag.name] > to find all entries that have a particular tag... but I don't know how to > also figure in the value. > > I don't need this predicate to work with a database, these queries are all > just being run in memory, with my own custom model objects (not using Core > Data). If there is no way to do this in a format string, is there some way > to do it by directly constructing a predicate object? > > Thanks, > Jesse > _______________________________________________ >
Jesse, I'm thinking NSCompoundPredicate is what you're looking for. You should be able to do something like this: NSPredicate *tagPredicate = [NSPredicate predicateWithFormat:@"ANY tags.name = %@", tag.name]; NSPredicate *valuePredicate = [NSPredicate predicateWithFormat:@"ANY tags.value = %@", tag.value]; NSPredicate *combinedPredicate = [NSComparisonPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:tagPredicate, valuePredicate,nil]]; If the "simple" predicateWithFormat: predicates don't work, NSComparisonPredicates will definitely do what you need (I've never tried creating a compound predicate with predicateWithFormat: predicates) -- Jim http://nukethemfromorbit.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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]