Applescript: il confronto della variabile con la stringa fallisce

8

Ho un applescript che ottiene un elenco di elementi e quindi scorre su di essi:

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 variabile names viene impostata correttamente su una matrice di stringhe. Quando ripasso l'elenco, riesco a ottenere ciascuna delle currentName variabili restituite separatamente senza problemi.

Il problema che sto incontrando è l'istruzione if. Non ricevo mai la finestra di dialogo su cui è stato visualizzato "found it".

Ho provato anche il confronto come if (currentName = "Top_CPU_Processes") then e non viene mai valutato come vero.

C'è qualcosa che devo fare per avere il contenuto della variabile valutare rispetto alla stringa?

    
posta Chris Schmitz 28.02.2014 - 15:36
fonte

1 risposta

8

Quando si ha una lista / matrice di variabili e si scorre (ripeti) su di esse, si ottengono riferimenti a ciascun elemento, ad esempio "elemento 1 di nomi". In altre parole, non si ottiene direttamente il valore, si ottiene un puntatore all'elemento nell'array. Devi forzare il riferimento dell'oggetto al suo valore effettivo per confrontarlo.

Prova: if ((currentName come stringa) è uguale a "Top_CPU_Processes) quindi

Inoltre, se usi Script Debugger, è molto più facile vedere cosa succede con lo script, ha una capacità di debug molto più efficace rispetto a Applescript Editor.

    
risposta data 28.02.2014 - 15:45
fonte

Leggi altre domande sui tag