Como alterar a cor das alterações de texto no UITextView no Swift3

Eu observei algumas postagens de perguntas existentes aqui e tentei implementar todo o código, mas acabei não sendo capaz de implementar qualquer código com êxito. Na verdade, acho que compreendi como mudar as cores de alguns textos dentroUITextView se um texto é definido inicialmente, mas o que não entendo é que, quando meu texto começou a ser editado, ele não parece estar funcionando corretamente. A seguir, é minha tentativa de código que preenche de perto o meu comportamento desejado;

 func textViewDidBeginEditing(_ textView: UITextView) {

    let main_string = ""
    let getData: [String] = userDefaults.object(forKey: "myData") as! [String]
    print("\(getData)")

    let searchWords = "world"

        let range = (main_string as NSString).range(of: searchWords)

        let attribute = NSMutableAttributedString.init(string: main_string)
        attribute.addAttribute(NSForegroundColorAttributeName, value: UIColor.red , range: range)

        mytextView.attributedText = attribute


}

Salvei os dados de entrada nomeandoMyData. Tentei usar um loop for para remover todos os elementosgetData e use-o como valores individuais. No entanto, no console, existem muitas linhas de explicação. Eu acho que essa é uma maneira correta de escrever, mas o meu Mac diz que não. No entanto, se eu definir umString dentromain_string esearchWords, por exemplo,"esta é a minha pergunta. Quero que as pessoas me ajudem do mundo" em main_string e"mundo" em searchWords conforme escrito no código. Depois que o aplicativo estiver sendo carregado, no meu texto, a palavra "mundo" será destacada em vermelho perfeitamente, mas após a palavra mundial, todo o texto estará em vermelho. Não entendo por que estou sendo torturado por esse bug desconhecido.

Então, o que eu quero realizar é

a partir da data salva no meumyData, Só quero que as palavras armazenadas sejam destacadas oportunamente quando os usuários digitarem. Por exemplo, se um usuário digitar "olá" e "mundo". Então eles são salvos pormyData e eles serão destacados somente quando digitados. E volte para a cor normal quando as palavras que não estiverem armazenadas forem digitadas.

Eu suponho que eu não tenha uma explicação. Se você precisar saber alguma coisa, por favor, aponte para mim. Muito obrigado !!

questionAnswers(1)

yourAnswerToTheQuestion