15 votos

Applescript: Comparación de la variable de cadena está fallando

Tengo un applescript que obtiene una lista de elementos y, a continuación, se itera sobre ellos:

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

El names variable se establece en una matriz de cadenas correctamente. Cuando me repita más de la lista que yo soy capaz de obtener cada una de las currentName variables devueltas por separado sin problema.

El problema que estoy corriendo en la instrucción if. Yo nunca voy a conseguir el cuadro de diálogo que la pantalla se "encontró".

He probado la comparación como if (currentName = "Top_CPU_Processes") then así y todavía no se evalúa como true.

Hay algo que tengo que hacer para tener el contenido de la variable a evaluar en contra de la cadena?

13voto

Chris Paveglio Puntos 152

Cuando usted tiene una lista o matriz de variables y repetir(repeat) sobre ellos, se están recibiendo las referencias a cada elemento como "el punto 1 de los nombres". En otras palabras, usted no coger directamente el valor, se obtiene un puntero al elemento de la matriz. Usted tiene que convertir el elemento de referencia para el valor real para comparar.

Probar: si ((currentName como cadena) es igual a "Top_CPU_Processes), a continuación,

También, si usted está utilizando el Depurador de secuencias de Comandos, es mucho más fácil ver lo que pasa con el guión, que tiene mucho, mucho, mucho mejor de depuración capacidad que el Editor Applescript.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X