¿Por qué iterar sobre una list en applescript con `repeat with … in` falla con el código de error` -1731` en parte de la list?

Tengo esta secuencia de commands para garantizar que cada pista en una list de reproducción inteligente determinada sea arrastrable y se pueda marcar como favorita.

La secuencia de commands se iniciará a través de launchd.

Todo esto está bien configurado, excepto que la secuencia de commands muestra un comportamiento extraño. Cuando lo ejecuta, algunos de ellos tienen éxito, pero la mayoría parece fallar debido al código de error -1731 . Las ejecuciones posteriores suceden el mismo comportamiento hasta que no tenga más pistas barajables y modificables.

Esperaría que si los errores de código en la primera ejecución seguirían cometiendo errores, eso no es lo que sucede.

¿Que esta pasando aqui?

  • Lista de reproducción inteligente en Itunes basada en la location del file
  • AppleScript para save la window actual de Safari en formatting webarchive?
  • Establezca un atajo de keyboard para borrar todas las pistas de la queue Up Next en iTunes
  • Applescript para abrir el cuadro Obtener información de la pista de iTunes anterior?
  • ¿Es posible detectar todos los podcasts en iTunes que están marcados para no permitir la eliminación automática?
  • Crea lists de reproducción para álbumes completos en iTunes (es decir, álbumes con todas las canciones)
  • Lanzamiento de Genius a través de AppleScript
  • osascript "establecer límites de window" no funciona después de la actualización de Mavericks
  • 2 Solutions collect form web for “¿Por qué iterar sobre una list en applescript con `repeat with … in` falla con el código de error` -1731` en parte de la list?”

    Agregue un get explícito para resolver la reference a las pistas:

     tell application "iTunes" repeat with t in (get tracks of playlist "Listen Smart" where shufflable is false) set shufflable of t to true end repeat repeat with t in (get tracks of playlist "Listen Smart" where bookmarkable is false) set bookmarkable of t to true end repeat end tell 

    Intenta ejecutar un script como este:

     tell application "iTunes" repeat with t in (tracks of playlist "Listen Smart" where shufflable is false) t end repeat end tell 

    Si la list de reproducción tiene tres pistas donde la opción de reproducción es falsa, el resultado al final será algo así como el item 3 of every track of playlist "Listen Smart" of application "iTunes" whose shufflable = false . Si establece el comstackble de las dos primeras pistas en verdadero dentro del ciclo de repetición, no habrá un elemento 3 donde el comstackble sea falso.

    Si reemplaza repeat with t in (tracks con repeat with t in (get tracks , el resultado al final será algo así como el item 3 of {file track id 54774 of user playlist id 54771 of source id 73 of application "iTunes", file track id 54775 of user playlist id 54771 of source id 73 of application "iTunes", file track id 54776 of user playlist id 54771 of source id 73 of application "iTunes"} .

    Como un truco completo , esto parece ser el truco.

    Tenga en count que es súper insatisfactorio, así que todavía estoy muy interesado en escuchar una mejor respuesta.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).