Applescript: La variable de comparación con la cadena está fallando

8

Tengo un applecript que obtiene una lista de elementos y luego los repite:

tell application "GeekTool Helper"
    set names to name of geeklets

    repeat with currentName in names
        if (currentName is equal to "Top_CPU_Processes") then
            display dialog "found it"
        end if
        return currentName
    end repeat
end tell

La variable names se establece en una matriz de cadenas correctamente. Cuando repito la lista, puedo obtener cada una de las variables currentName devueltas por separado sin ningún problema.

El problema que estoy encontrando es la sentencia if. Nunca me aparece el cuadro de diálogo que aparece en la pantalla "lo encontré".

También he probado la comparación como if (currentName = "Top_CPU_Processes") then y todavía nunca se evalúa como verdadera.

¿Hay algo que deba hacer para evaluar el contenido de la variable con respecto a la cadena?

    
pregunta Chris Schmitz 28.02.2014 - 15:36

1 respuesta

8

Cuando tiene una lista / matriz de variables y las repite (repite) sobre ellas, obtiene referencias a cada elemento, como "elemento 1 de nombres". En otras palabras, no obtiene directamente el valor, recibe un puntero al elemento en la matriz. Tienes que forzar la referencia del artículo a su valor real para compararla.

Prueba: si ((currentName como cadena) es igual a "Top_CPU_Processes) entonces

Además, si está utilizando el depurador de secuencias de comandos, es mucho más fácil ver lo que ocurre con la secuencia de comandos, tiene una capacidad de depuración mucho mejor que el Editor de Apple.

    
respondido por el Chris Paveglio 28.02.2014 - 15:45

Lea otras preguntas en las etiquetas