1 votos

Cómo iterar sobre los recordatorios utilizando AppleScript

Estoy intentando escribir un AppleScript que simplemente itere sobre los Recordatorios no completados y muestre el nombre. El código siguiente genera este error: Reminders got an error: Can’t make name of reminder (reminder id \"x-apple-reminder://838D4BDF-C520-440A-ADF2-B66FD602ADDC\") into type string

Descubrí cómo hacerlo funcionar iterando de 1 a (count of notCompleted) pero me gustaría entender por qué el código de abajo no funciona. (El hecho de que espere que el código de abajo funcione sugiere que estoy entendiendo mal qué tipo de objetos hay en notCompleted .) ¿Qué contiene exactamente notCompleted y cuál es exactamente el tipo de currentReminder ?

tell application "Reminders"
    set snoozeList to "Snooze"
    set notCompleted to reminders in list snoozeList whose completed is false
    repeat with currentReminder in notCompleted
        display dialog (name of reminder currentReminder)
    end repeat
end tell

2voto

qarma Puntos 71

Su comprensión parece estar en el punto, aparte de dos pequeños puntos. Como ya sabe, notCompleted contiene una lista de recordatorios que no se han completado. La variable currentReminder en cada iteración del bucle de repetición contendrá, por tanto, un único reminder objeto. Por lo tanto, en primer lugar, no es necesario (o más bien, no debería) utilizar el reminder especificador en name of reminder currentReminder . En su lugar, sólo tiene que utilizar name of currentReminder .

Esto no resuelve del todo el problema, ya que el name of currentReminder se devuelve en un formato parcialmente desreferenciado (algo en lo que no entraré aquí, pero que es una consecuencia de cómo se enumeran los elementos bajo el capó). Esto significa que para acceder a los datos de texto reales, hay que forzarlos a text así:

display dialog (name of currentReminder as text)

o utilizar el get que básicamente hace lo mismo:

display dialog (get name of currentReminder)

Así que no es nada que estés haciendo mal en un sentido estricto, sólo peculiaridades de 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