Я попытался проверить наличие подстроки в строке NSString двумя способами, оба произошли сбой. Это объект NSString, который я получаю из одного из свойств моего NSManagedObject.
Использование NSRange
NSString *searchString = @"drive";
NSRange range = [text rangeOfString:searchString options:(NSCaseInsensitiveSearch)];</p>
<p>if (range.location != NSNotFound) {
NSLog(@"Found");
}
Использование NSScanner
NSScanner *scanner = [NSScanner scannerWithString:text];</p>
<p>NSLog(@"%d",[scanner scanString:searchString intoString:nil]);
Обе они работают, когда text = @ "drive", но вызывают EXC_BAD_ACCESS, когда текст выдает "i drive" или "drive to". Ничего не происходит, если текст "idrive" или "driveto".
Даже более странно, иногда в примерах выбрасываются NSInvalidArgumentExceptions, говоря, что я пытался передать объект NSCFSet или DateComponents в rangeOfString:, который я не использую в своем приложении.
Есть идеи?