1 votos

Escribir en el archivo plist múltiples preferencias al mismo tiempo

Necesito escribir unas 50 preferencias en un archivo .plist. ¿Hay alguna manera de escribir sólo una vez en el archivo plist? Mi código actual tiene 50 líneas de escritura de preferencias.

do shell script "defaults write testing.testing mypref " & "Kjlk"
do shell script "defaults write testing.testing otherpref " & "something"
do shell script "defaults write testing.testing thirdpref " & "whateva"
...

1voto

demure Puntos 833

Mac's default no está diseñado para funcionar así.

Verá un aumento sustancial de la velocidad si Applescript hace (o llama) a un shell script para emitir los 50 comandos. Puede envolver ambas versiones del script en un date llamar o utilizar el time para cronometrar el shell script si no está seguro de dónde está el retraso en su Mac.

La gran mayoría del retraso será probablemente el bucle de Applescript y luego la bifurcación de cada entorno para cada script que se ejecute. Al escribir un script, no sólo se reducirá el inicio a 1/50 del tiempo, sino que probablemente se ejecutará mucho más rápido en general.

Si realmente quisieras, podrías escribir tú mismo una función para analizar múltiples entradas; pero probablemente sea más fácil para ti tener 50 líneas de shell script.

0voto

Como menciona la respuesta de demure, un solo comando do shell script sería más rápido:

do shell script "defaults write testing.testing mypref Kjlk
defaults write testing.testing otherpref something
defaults write testing.testing thirdpref whateva"

También puede utilizar los Eventos del Sistema para editar plists:

tell application "System Events" to tell contents of property list file "/tmp/test.plist"
    make new property list item at end with properties {kind:string, name:"key", value:"value"}
    make new property list item at end with properties {kind:string, name:"key2", value:"value2"}
    set value of property list item "key2" to "value3"
end tell

Ambos tardaron unos 0,5 segundos en añadir 100 nuevas claves. Múltiples comandos do shell script tardaron unos 2 segundos.

-1voto

yuggib Puntos 4497

Si realmente quisieras, podrías escribir una función para analizar múltiples entradas

Gracias. Creo que voy a crear un shell script.

No tengo ni idea de lo que significa la cita anterior.

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