It seems that NSCaseInsensitiveSearch not works in NSString:rangeOfCharacterFromSet. Can someone explain why? is it correct behaviour?

NSString *string = @"James Bond Always Rocks";    
NSRange range = [string rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"J"] options:NSCaseInsensitiveSearch];
NSLog(@"range->%@",NSStringFromRange(range)); //This prints range->{0, 1}

NSString *string = @"James Bond Always Rocks";    
NSRange range = [string rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"j"] options:NSCaseInsensitiveSearch];
NSLog(@"range->%@",NSStringFromRange(range)); //This prints range->{2147483647, 0}
有帮助吗?

解决方案

From the documentation: "Options: A mask specifying search options. The following options may be specified by combining them with the C bitwise OR operator: NSAnchoredSearch, NSBackwardsSearch." So it seems like a correct behavior, not sure why only those two options can apply.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top