• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Wich one is faster, compare or isEqualToString? (NSString methods)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wich one is faster, compare or isEqualToString? (NSString methods)


  • Subject: Re: Wich one is faster, compare or isEqualToString? (NSString methods)
  • From: Ken Thomases <email@hidden>
  • Date: Fri, 5 Jun 2009 22:48:01 -0500

On Jun 5, 2009, at 9:22 AM, Bill Cheeseman wrote:

On Jun 5, 2009, at 9:51 AM, Michael Ash wrote:

On Fri, Jun 5, 2009 at 8:20 AM, Ignacio Enriquez <email@hidden> wrote:
Hi there;
Suppose I have

NSString *char = [[NSString alloc] initWithString:@"a"];

So, I wonder which is faster?

if([char isEqual:@"a"])
NSLog("it was a");

or

if([char compare:@"a"]==NSOrderSame)
NSLog("it was a");


or maybe is another faster than this two? thanks in advance...

1) Why do you care? Is this really a bottleneck in your application?

2) If it is in fact a bottleneck in your application, then test them
both and see which one is faster.

-isEqualToString: would be a shade faster than -isEqual:, but you should use it only if you know that the incoming parameter value is an NSString object.


But Michael is right. In most cases it won't make enough difference in execution speed to justify the time it takes to ask the question. If it does matter -- for example, because it is embedded in a loop that iterates hundreds of thousands of times, there are even faster techniques you should consider. But that is an advanced topic.

And, on top of those concerns, it's important to know that -compare: is not the same as -isEqual: or -isEqualToString:.


The documentation of -[NSString compare:] says it's the same as - compare:options:range: with no options. NSLiteralSeach is among the possible options. Its absence implies a non-literal comparison.

By contrast, -isEqual and -isEqualToString: perform a literal comparison. This is documented in the description of - isEqualToString:, which also gives an example of what it means. In other words, -isEqualToString: is analogous to -compare:options: with the NSLiteralSearch option.

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


References: 
 >Wich one is faster, compare or isEqualToString? (NSString methods) (From: Ignacio Enriquez <email@hidden>)
 >Re: Wich one is faster, compare or isEqualToString? (NSString methods) (From: Michael Ash <email@hidden>)
 >Re: Wich one is faster, compare or isEqualToString? (NSString methods) (From: Bill Cheeseman <email@hidden>)

  • Prev by Date: re: A couple questions about graphics
  • Next by Date: Re: A couple questions about graphics
  • Previous by thread: Re: Wich one is faster, compare or isEqualToString? (NSString methods)
  • Next by thread: Hiding Glyphs
  • Index(es):
    • Date
    • Thread