Una subpregunta podría ser: ¿cómo encontrar el nombre de AppleScript de las instancias de una clase?
Contexto: Utilizo lo siguiente para acceder a las variables de NSTimeZone y aplicar métodos.
use scripting additions -- esencial para usar (current date) con el framework "Foundation"
use framework "Foundation"
tell class "NSTimeZone" of current application to resetSystemTimeZone()
set aTZ to current application's NSTimeZone
set localZone to aTZ's localTimeZone()
set defaultZone to aTZ's defaultTimeZone()
set aDate to (current date)
defaultZone's |name|() as string
defaultZone's abbreviation as string
defaultZone's abbreviationForDate:aDate
defaultZone's daylightSavingTimeOffsetForDate:aDate
defaultZone's secondsFromGMT()
defaultZone's secondsFromGMTForDate:aDate
etc.
En la documentación de Apple, la última línea anterior destinada a SWIFT describe el uso de la siguiente manera:
func secondsFromGMT(for aDate: Date) -> Int
Fue difícil encontrar la formulación correcta para Applescript (secondsFromGMTForDate:aDate) pero lo descubrí. Sin embargo, lo que no puedo concebir es cómo llamar a un inicializador como los descritos para SWIFT:
init?(name tzName: String)
convenience init(forSecondsFromGMT seconds: Int)
Basándome en el patrón anterior, probé todo tipo de formulaciones como estas:
defaultZone's initWithName:"America/Toronto"
tell defaultZone to initName:"EST"
tell defaultZone to initNameString:"EST"
tell defaultZone to initTzName:"EST"
tell class NSTimeZone of current application to set SecondsFromGMT to 3600
tell defaultZone to initforSecondsFromGMT:3600
tell defaultZone to init:forSecondsFromGMT
defaultZone's initNameString("EST")
...y muchas otras variaciones. Siempre obtengo un error como este:
error "-[_NSSwiftTimeZone initWithName]: unrecognized selector sent to instance 0x7fc514913750" number -10000
De hecho, obtengo el mismo error incluso si escribo algo como
tell defaultZone to playPiano:"EST"
Entonces entiendo que no tengo el nombre correcto (selector) para la llamada. Y tal vez tampoco la forma correcta de llamar. Además, importa la mayúscula en los nombres.
¿Cuál es la forma correcta de hacerlo? ¿Existe alguna forma de listar las instancias, variables, métodos, funciones de una clase NS tal como se refieren en Applescript?