• 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: Question about predicates and list properties.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about predicates and list properties.


  • Subject: Re: Question about predicates and list properties.
  • From: Frédéric Testuz <email@hidden>
  • Date: Wed, 26 May 2010 19:03:57 +0200

Le 26 mai 2010 à 16:42, Graham Cox a écrit :

>
> On 27/05/2010, at 12:35 AM, Keary Suska wrote:
>
>> Not enough info: are you using Core Data, or a simple modeled relationship? I assume the issue is about traversing a relationship--otherwise the solution is trivial...
>
>
> No, it's a simple 'to many' property in my own model, not using Core Data. If it's trivial I can't find the solution - I have tried many things hinted at by the predicates guide. I am tired having worked a 14 hour day and counting, so perhaps I just need a rest to see the wood for the trees...
>
> I have a list of objects. Each object has a 'categories' property, which is another 'to many' property, i.e. a list. Each category has a simple 'name' property.
>
> I desire to match a string I enter to any of the categories.name strings in the list using equals, begins with, ends with, contains. I'm setting up the predicate editor in IB, but I can't see any way to use the aggregating predicate syntax anywhere there and when I attempt it I get a runtime error (e.g. no value for key 'ANY categories').
>
> Perhaps it's a limitation of IB that more complex predicate editor row templates are not available?

I had a similar problem (perhaps not exactly the same).

I resolve it by subclassing NSPredicateEditorRowTemplate. Then in IB select the predicate row template and set its class to your subclass.

Here is my code :

@interface RBDAnyPredicateEditorRowTemplate : NSPredicateEditorRowTemplate {

}

@end

@implementation RBDAnyPredicateEditorRowTemplate

- (NSPredicate *)predicateWithSubpredicates:(NSArray *)subpredicates {
    /* we only make NSComparisonPredicates */
    NSComparisonPredicate *predicate = (NSComparisonPredicate *)[super predicateWithSubpredicates:subpredicates];

    /* construct an identical predicate, but set the modifier to NSAnyPredicateModifier  flag */
    return [NSComparisonPredicate predicateWithLeftExpression:[predicate leftExpression]
											  rightExpression:[predicate rightExpression]
													 modifier:NSAnyPredicateModifier
														 type:[predicate predicateOperatorType]
													  options:[predicate options]];
}

@end

I did something similar to have a boolean predicate.

Frédéric_______________________________________________

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: Question about predicates and list properties.
      • From: Graham Cox <email@hidden>
    • Re: Question about predicates and list properties.
      • From: Dave DeLong <email@hidden>
References: 
 >Question about predicates and list properties. (From: Graham Cox <email@hidden>)
 >Re: Question about predicates and list properties. (From: Keary Suska <email@hidden>)
 >Re: Question about predicates and list properties. (From: Graham Cox <email@hidden>)

  • Prev by Date: Cannot change IKImageBrowserView group title text color?
  • Next by Date: Re: subclass overwriting superclass ivar
  • Previous by thread: Re: Question about predicates and list properties.
  • Next by thread: Re: Question about predicates and list properties.
  • Index(es):
    • Date
    • Thread