> On May 29, 2014, at 2:52 PM, Trygve Inda wrote: > >> I have an array of objects. One property of this object is a ratio stored as >> a string (e.g. 5:8, 9:4, 21:2) etc. >> >> I have a category on NSString: >> >> -(NSComparisonResult)compareAspectString:(NSString *)aString >> >> This does the division and compares the aspect ratios correctly. >> >> Now I need a predicate to do this. >> >> My Predicate says: >> >> Printing description of predicate: >> aspectRatio >[cd] "4:3" >> >> But it is just doing straight string comparison. How can I get the predicate >> to use by comparison method? > > You can do this, but not using a predicate format string. > > One approach would be to use +[NSComparisonPredicate > predicateWithLeftExpression:rightExpression:customSelector:]. The selector > there, though, isn't a comparator. It returns TRUE if the comparison > "passes"; FALSE otherwise. For example, you would be implementing a > "greater-than-ratio" comparison, so the custom selector when sent to one value > and passed another value would return TRUE if and only if the first value (the > receiver) is greater than (as a ratio) the second value (the argument). > > Another approach would be +[NSPredicate predicateWithBlock:]. > > Regards, > Ken > >
Is there any way to take the value entered by the user in the Predicate Editor (e.g. "4:3") and convert it through a Value Transformer. That way I could convert it to 1.3333. But when the user went back into the editor, I would want to show the value 4:3 and not the transformed value. _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com