On Sep 18, 2008, at 4:59 PM, Dave DeLong wrote:

IIRC, isEqual: compares memory addresses, whereas isEqualTo: compares hashes of the objects being compared. I also believe that isEqual: is the preferred method.

The documentation says that isEqual: checks the hashes, so that isn't it. Also:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSString *hello1 = @"Hello World";
    NSString *hello2 = [@"Hello " stringByAppendingString:@"World"];

NSLog(@"address of hello1: 0x%x address of hello2: 0x%x isEqual: %u isEqualTo: %u isEqualToString: %u", hello1, hello2, [hello1 isEqual:hello2], [hello1 isEqualTo:hello2], [hello1 isEqualToString:hello2]);

    [pool drain];
    return 0;
}

[Session started at 2008-09-18 17:13:53 -0500.]
2008-09-18 17:13:53.809 isequaltest[2082:10b] address of hello1: 0x2030 address of hello2: 0x1063f0 isEqual: 1 isEqualTo: 1 isEqualToString: 1

The Debugger has exited with status 0.

According to the documentation, isEqualToString: is faster when you know both objects are strings. I'm not sure what isEqualTo: is for, though.

Charles
_______________________________________________

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