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/