On Jun 26, 2008, at 6:48 PM, Chris wrote:

On Fri, Jun 27, 2008 at 10:09 AM, Peter Ammon <[EMAIL PROTECTED]> wrote:


On Jun 25, 2008, at 7:27 PM, Chris wrote:


The net effect is that NSPredicateEditor can't display a predicate like

NOT (foo = "bar")


A bug in NSPredicateEditor system perhaps? But surely someone would have
seen it before.


Hi Chris,

NOT type compound predicates only support exactly one subpredicate, or at least they did when NSPredicateEditor was written. For this reason, the default implementation of NOT expects the sole subpredicate to be an OR
type.  So set this:

NOT(OR(foo="bar"))


Ahh, this would explain why it hasn't been reported before.

However the BNF description of predicates does not impose that restriction:

http://developer.apple.com/documentation/Cocoa/Conceptual/Predicates/Predicates.pdf

And also, when you convert the predicate to a string, it doesn't show the OR. The OR is apparently optimized away by the predicateFormat routine. Since the only way to feasibly store a predicate is as a string, and then
parse it back in, its not really consistent.

The right way to store an NSPredicate is archival via NSCoding. The string representation of a NSPredicate has always been lossy.

-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 [EMAIL PROTECTED]

Reply via email to