Swift: las letras repetidas se convierten en un número en una Cadena [cerrado]

Tengo una cadena, digamos

var abc : String = "aaaabbbbbbbccddd"

Necesito un algoritmo sobre cómo cambiar estas letras que se repiten al número de letras que se repiten (si hay más de 2 en una fila), para que la cadena dada se convierta en

abc = "a4b7ccd3"

Cualquier sugerencia sería apreciada.

No tengo ninguna lógica hasta ahora:

func compress(_ input: String) ->  String? {
    var count = 1
    var compressedString = ""



    if count > 2 {
      // what happens when there's more than 2
      print ()
    }
    else {
      // what happens when there's 2 or less
      print ()
    }
    return
 }

Respuestas a la pregunta(2)

Su respuesta a la pregunta