You can get the left and right expressions, etc. by calling through to super:
NSComparisonPredicate *superPredicate = [super predicateWithSubpredicates:subpredicates]; NSExpression *lhs = [superPredicate leftExpression], *rhs = [superPredicate rightExpression]; ... You would return a new predicate constructed from from the pieces of super's predicate, except substitute in your own modifier. -Peter On Aug 13, 2010, at 3:12 PM, Gustavo Pizano wrote: > Peter hello, first of all thanks for the reply. > > So yes, I need to cross a to-many relationship. let me see if I got this > straight because my mind was heading in that same direction you commented, > just I didn't know what to use or what was the name of the artifact, in this > case the NSComparasionPredicateModifier. > > So due the fact that I already have overwritten NSPredicateEditorRowTemplate > to enlarge the Floating-Decimal NSTextfield of the right expression, I would > take that approach first, overwriden the predicateWithSubpredicates method > and doing the following: > > - (NSPredicate *)predicateWithSubpredicates:(NSArray *)subpredicates{ > NSPredicate * predicate = [NSComparasionPredicate > predicateWithLeftExpression:(NSExpression *)lhs > rightExpression:(NSExpression*)rhs modifier: NSAllPredicateModifier > > type:(NSPredicateOperatorType)type options:NSCaseInsensitivePredicateOption]; > } > > I don't know what lhs, rhs and type must be. should I pass [[self > leftExpresions] objectAtIndex:0] and also for the rightExpresion? or does it > comes from the subpredicates parameter?. > > sorry I got little confused there... :( > > Thx > > Gustavo > > > On Aug 13, 2010, at 11:49 PM, Peter Ammon wrote: > >> >> On Aug 13, 2010, at 8:45 AM, Gustavo Pizano wrote: >> >>> Hello all once again. >>> >>> I have been searching but I hadn't found something useful, so please >>> before if you know a place I can look at let me know. >>> >>> I have these 3 Entities >>> >>> ExpenditureGroup: >>> name >>> icon. >>> ----------------------- >>> toExpenditures. ->> >>> >>> >>> Expenditure >>> creationDate >>> location >>> total >>> -------------------- >>> toExpenditureGroup -> >>> toExpenditureDetails ->> >>> >>> >>> ExpenditureDetail >>> detailDescrb >>> subTotal >>> ---------------------- >>> toExpenditure -> >>> >>> also I have an arrayController that fetches all the ExpenditureGroup >>> Entities called _expenditureGorupArrayController. >>> >>> in my predicate editor I added the NSPredicateEditorRowTemplates with key >>> paths for toExpenditures.location, toExpenditures.creationDate, >>> toExpenditures.total, toExpenditures.toExpenditrueDetails.detailDescrb and >>> finally toExpenditures.toExpenditureDetails.subTotal. >>> >>> I dunno if those last 2 are ok.. my guess NO. >>> >>> anyway, when I set the predicate, Im setting into the >>> _expenditureGroupArrayController setFilterPredicate, and pass the predicate >>> I just created, but nothing seems to work. >> >> Hi Gustavo, >> >> It looks like you want your predicate to cross a "to-many" relation. Is >> that right? If so, you need to create a predicate that has an >> NSComparisonPredicateModifier that knows how to cross to-many relations >> (that is, either NSAllPredicateModifier or NSAnyPredicateModifier). >> >> If you're using NSPredicateEditor to create the predicate, then the >> RowTemplate has to know to create a predicate with the right modifier. >> Unfortunately you cannot yet set that up in IB, but you can do it >> programmatically, by passing the right NSComparisonPredicateModifier to one >> of the initWith... methods on NSPredicateEditorRowTemplate (see its header). >> >> You can also subclass NSPredicateEditorRowTemplate and override >> -predicateWithSubpredicates: to create an NSPredicate with the proper >> modifier. >> >> Hope that helps, let me know if that's not clear, >> -Peter >> > _______________________________________________ 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 arch...@mail-archive.com