Detecting if an NSString contains...? Detecting if an NSString contains...? objective-c objective-c

Detecting if an NSString contains...?


Here's how I would do it:

NSString *someString = @"Here is my string";NSRange isRange = [someString rangeOfString:@"is " options:NSCaseInsensitiveSearch];if(isRange.location == 0) {   //found it...} else {   NSRange isSpacedRange = [someString rangeOfString:@" is " options:NSCaseInsensitiveSearch];   if(isSpacedRange.location != NSNotFound) {      //found it...   }}

You can easily add this as a category onto NSString:

@interface NSString (JRStringAdditions) - (BOOL)containsString:(NSString *)string;- (BOOL)containsString:(NSString *)string               options:(NSStringCompareOptions)options;@end@implementation NSString (JRStringAdditions) - (BOOL)containsString:(NSString *)string               options:(NSStringCompareOptions)options {   NSRange rng = [self rangeOfString:string options:options];   return rng.location != NSNotFound;}- (BOOL)containsString:(NSString *)string {   return [self containsString:string options:0];}@end


Use the following code to scan the word in sentence.

NSString *sentence = @"The quick brown fox";NSString *word = @"quack";if ([sentence rangeOfString:word].location != NSNotFound) {    NSLog(@"Yes it does contain that word");}


In iOS8 you can now use:

BOOL containsString = [@"Here is my string." containsString:@"is"];

There's an interesting post on how to "retrofit" it to iOS7 here:http://petersteinberger.com/blog/2014/retrofitting-containsstring-on-ios-7/