usando UITextPosition, obtenha o caractere anterior de textInRange

Eu estive pesquisando alto e baixo e não consigo descobrir como fazer isso. Digamos que eu tenho uma string como esta:

NSString *string = @"&foo !foo";

O que estou tentando fazer é diferenciar os dois foos (parece engraçado haha) dentro de uma exibição de texto. Quando clico em um, quero saber qual (& ou!) Vem antes dele. Aqui está como estou recebendo a palavra:

UITapGestureRecognizer *recognizer = (UITapGestureRecognizer *)sender;
UITextView *TV = (UITextView*)recognizer.view;
CGPoint location = [recognizer locationInView:TV];
location.y += TV.contentOffset.y;
UITextPosition *tapPosition = [TV closestPositionToPoint:CGPointMake(location.x, location.y)];
UITextRange *textRange = [TV.tokenizer rangeEnclosingPosition:tapPosition 
    withGranularity:UITextGranularityWord inDirection:UITextLayoutDirectionRight];
NSString *tappedWord = [TV textInRange:textRange];

Não consigo descobrir como obter o personagem anterior.TV.tokenizer UITextGranularityCharacter só recebe a letra mais próxima, não o símbolo. Alguma solução para isso?

questionAnswers(1)

yourAnswerToTheQuestion