IOS/Objective-C:使用 StringByReplacingOccurrencesOfString 进行不区分大小写的搜索

IOS/Objective-C: Case Insenstive Search using StringByReplacingOccurenceOfString

我对不区分大小写的 NSString 搜索感到困惑。

我收集了一个常规 stringByReplacingOccurrencesOfString 总是区分大小写:

[myString stringByReplacingOccurrencesOfString:verb withString:@" "];

但是有一个变体 stringByReplacingOccurencesofString options: range: 有一个不区分大小写的选项。

  - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
                                        withString:(NSString *)replacement 
                                           options:(NSStringCompareOptions)options 
                                             range:(NSRange)searchRange;

尝试指定范围时出现错误:nil。范围指的是什么?如果我不知道是否会找到搜索字符串,我怎么知道要指定什么范围,如上例中的 X Y?

提前感谢您的任何见解和建议。

如果您没有要查找的特定范围,则可以传入整个字符串的范围。要获取字符串的整个范围,您可以使用 [string rangeOfString:string]NSMakeRange(0, string.length).

NSString *newString = [oldString stringByReplacingOccurrencesOfString:stringToReplace 
                           withString:replacementString 
                           options:NSCaseInsensitiveSearch 
                           range:NSMakeRange(0, string.length)];