You were right, my equality is not transitive. 

id ob = [[objectClass alloc] initWithId:@"hello"];
[ob isEqual:@"hello"]; //returns YES
[@"hello" isEqual:ob]; //returns NO

That may very well be the problem... now... I have no idea on how I will make 
the second test return YES. 

doesn't that depend on the implementation of isEqual of the asking object in 
this case NSString? Have any of you had to deal with this before? I'll dive 
into the docs and see what details I find that might be useful. 

Seems we are getting somewhere
cheers!

Alejandro

On Mar 16, 2010, at 2:45 PM, Clark Cox wrote:

> On Tue, Mar 16, 2010 at 11:35 AM, Thomas Davie <tom.da...@gmail.com> wrote:
>>> Your code doesn't account for the possibility that the order of
>>> comparison might happen in the other order (i.e. [@"123" isEqual:
>>> object]). I wouldn't be surprised if NSSet is assuming that equality
>>> is transitive (i.e. [a isEqual: b] == [b isEqual: a]).
>> 
>> For reference, this property is not transitivity, the transitivity relation 
>> is:
>> 
>> a -> b ^ b -> c => a -> c (for some relation ->)
>> 
>> The one you're looking for is commutativity.
> 
> Indeed; must have been echos of my previous life as a C++ programmer
> creeping into the Obj-C part of my brain (in C++, the std::set class
> uses less than, instead of equality, where transitivity is the
> important property, not commutativity).
> 
> :)
> 
> 
> 
> -- 
> Clark S. Cox III
> clarkc...@gmail.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 arch...@mail-archive.com

Reply via email to