15 votes

Applescript : La comparaison entre une variable et une chaîne de caractères échoue

J'ai un applescript qui obtient une liste d'éléments et qui les parcourt par itération :

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 est correctement définie comme un tableau de chaînes de caractères. Lorsque je répète sur la liste, je suis en mesure d'obtenir chacun des éléments suivants currentName Les variables sont retournées séparément sans problème.

Le problème que je rencontre est l'instruction if. Je n'obtiens jamais la boîte de dialogue qui affiche "trouvé".

J'ai essayé la comparaison comme if (currentName = "Top_CPU_Processes") then et il n'est toujours pas évalué comme vrai.

Dois-je faire quelque chose pour que le contenu de la variable soit évalué par rapport à la chaîne de caractères ?

13voto

GyozaGuy Points 1

Lorsque vous avez une liste/un tableau de variables et que vous les itérez (répétez), vous obtenez des références à chaque élément, par exemple "élément 1 des noms". En d'autres termes, vous n'obtenez pas directement la valeur, vous obtenez un pointeur vers l'élément du tableau. Vous devez convertir la référence de l'élément en sa valeur réelle pour la comparer.

Essayez : si ((currentName as string) is equal to "Top_CPU_Processes) then

De plus, si vous utilisez le débogueur script, il est beaucoup plus facile de voir ce qui se passe avec le script, il a une bien meilleure capacité de débogage que l'éditeur Applescript.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X