¿Cómo puedo guardar una variable entre las ejecuciones de Applescript?

0

Estoy tratando de guardar tres variables distintas a las que mi aplicación Applescript podría acceder en el inicio, y si el usuario lo desea, puede manipular esas variables desde dentro de la aplicación.

Más específicamente, estoy trabajando en una secuencia de comandos que ejecuta un montón de ecuaciones basadas en la latitud y longitud seleccionadas de un usuario y genera los resultados en una cadena, incluido el nombre de la ciudad. Si el usuario lo desea, puede elegir una ciudad diferente y reiniciar el script basado en esa ciudad.

Elegir una ciudad diferente, establecer las variables y volver a ejecutar el script es correcto. Solo puedo configurar una subrutina que contiene el siguiente código:

set choice to choose from list {"City A","City B","City X"}
if choice is "City A"
    set city to "City A"
    set lat to (latitude of City A)
    set lon to (longitude of City A)
else if choice is "City B"
...

Mi problema es que tengo que inicializar estas variables cuando se inicia el script. Puedo establecer un valor predefinido para estas variables, o puedo ejecutar esta subrutina al principio de la secuencia de comandos, pero no puedo encontrar una manera de guardar la elección para futuras ejecuciones, de modo que el resultado de esta elección se convierte en el predeterminado. Es decir, si el script ejecuta de forma predeterminada estas ecuaciones para la Ciudad A, y elijo la Ciudad B de la lista, la próxima vez que se ejecute el script, debería ejecutar las ecuaciones de la Ciudad B automáticamente, sin ninguna intervención del usuario.

Intenté configurar un segundo script con exactamente tres líneas de código:

property city : "City A"
property longitude : (longitude of City A)
property latitude : (latitude of City A)

pero luego se dio cuenta de que falla exactamente por el mismo problema: los scripts de Apple no pueden guardar variables dentro de sí mismos entre tareas. Puedo actualizar una variable externa una vez que está cargada en el script actual, pero eso no edita el script original.

Otra cosa que intenté fue crear un archivo en blanco en algún lugar y cambiarle el nombre de acuerdo con la elección del usuario, luego probar el nombre del archivo y actualizar las variables según corresponda, pero también me gustaría compartir la aplicación para que otros puedan uso, y eso requeriría que también tengan este archivo en una carpeta específica. Por alguna razón, a Script Editor no le gusta cuando trato de obtener la ruta de archivo de un archivo dentro de un paquete de aplicaciones, así que a menos que haya una solución para eso, no puedo ocultar el archivo dentro de la propia aplicación.

He visto aquí que si guarda el archivo como .applescript , puede hacer que escriba en en sí mismo, pero no estoy seguro de cómo harías eso.

Soy consciente de que hay una cosa llamada Database Events que posiblemente podría manipular, pero no estoy seguro de cómo hacerlo.

El mínimo que estoy buscando es una forma de guardar las variables para acceder a ellas en el lanzamiento la próxima vez, pero si alguien pudiera abordar todas las posibilidades que he mencionado anteriormente, sería excelente.

    
pregunta DonielF 26.07.2017 - 01:28

1 respuesta

1

Agregue una declaración property al inicio de su script. Los cambios en esa propiedad durante la ejecución de su script se guardarán y estarán disponibles la próxima vez que ejecute.

  

El valor establecido por una definición de propiedad no se restablece cada vez que se ejecuta el script; en cambio, persiste hasta que el script se vuelve a compilar. []

    
respondido por el Patrick Wynne 26.07.2017 - 01:40

Lea otras preguntas en las etiquetas