On Tue, Mar 16, 2010 at 2:18 PM, Alejandro Rodriguez
<[email protected]> wrote:
> 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.

I doubt that you can. You'll likely have to give up on the idea of
being able to pass a string to -member:. You could implement the check
in a method of your own in a category on NSSet.

> doesn't that depend on the implementation of isEqual of the asking object in 
> this case NSString?

Yes.

> 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 <[email protected]> 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
>> [email protected]
>
>



-- 
Clark S. Cox III
[email protected]
_______________________________________________

Cocoa-dev mailing list ([email protected])

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