views:

144

answers:

2

I am having an issue that I can't figure out.

I'm trying to run the rangeOfString method on a string, and I'm not sure how to determine if the string was not found. For example:

NSRange range = [@"abc" rangeOfString:@"d" options:NSCaseInsensitiveSearch range:NSMakeRange(0,3)];

Clearly, "d" is not contained in the string "abc." I'd like to be able to do this:

if(the range is empty since "d" is not in "abc")
   //do something

What is the code for this?

Thanks!!

+1  A: 

Check the length of the range. If it's non-zero, it was found.

Matt Long
+1  A: 

From the documentation of -[NSString rangeOfString]

Return Value

An NSRange structure giving the location and length in the receiver of the first occurrence of aString. Returns {NSNotFound, 0} if aString is not found or is empty (@"").

so it looks like

if ([@"abc" rangeOfString:@"d"].location == NSNotFound){
  //Do something

is the Apple-approved way

EDIT: I made a really bad typo, fixed it, thanks Kalle

Jared P
You want two equal signs there.
Kalle
Does that mean checking the length is not "Apple-approved"? ;-)
Matt Long
I don't know. And at any rate, just because it's not approved by Apple doesn't make it wrong (see: App Store rejections)
Jared P