¿Cómo obtener NSRange (s) para una subcadena en NSString? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo obtener todos los NSRange de un personaje en particular en una NSString? 4 respuestas
NSString *str = @" My name is Mike, I live in California and I work in Texas. Weather in California is nice but in Texas is too hot...";

¿Cómo puedo hacer un bucle a través de este NSString y obtener NSRange para cada aparición de "California"? Quiero el NSRange porque me gustaría cambiar su color en la cadena NSAttributed.

 NSRange range = NSMakeRange(0,  _stringLength);
 while(range.location != NSNotFound)
 {
    range = [[attString string] rangeOfString: @"California" options:0 range:range];


    if(range.location != NSNotFound)
    {

        range = NSMakeRange(range.location + range.length,  _stringLength - (range.location + range.length));


        [attString addAttribute:NSForegroundColorAttributeName value:_green range:range];
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta