Como obter NSRange (s) para uma substring em NSString? [duplicado]

Esta questão já tem uma resposta aqui:

Como obter todos os NSRange de um caractere particular em um NSString? 4 respostas
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...";

Como posso percorrer este NSString e obter NSRange para cada ocorrência de "Califórnia", eu quero o NSRange porque eu gostaria de mudar sua cor na string 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];
    }
}

questionAnswers(3)

yourAnswerToTheQuestion