0 votos

Error de AppleScript al utilizar Myriad Tables Library: "types" se sustituye por "type"

He descargado la biblioteca Myriad Tables Lib v1.0.8 AppleScript script de aquí .

Ejecute el siguiente código y observará que se ejecuta sin errores:

-- use script "Myriad Tables Lib" version "1.0.8"
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

on fetchStorableClipboard()
    set aMutableArray to current application's NSMutableArray's array() -- used to store contents
    -- get the pasteboard and then its pasteboard items
    set thePasteboard to current application's NSPasteboard's generalPasteboard()
    -- loop through pasteboard items
    repeat with anItem in thePasteboard's pasteboardItems()
        -- make a new pasteboard item to store existing item's stuff
        set newPBItem to current application's NSPasteboardItem's alloc()'s init()
        -- get the types of data stored on the pasteboard item
        set theTypes to anItem's types()
        -- for each type, get the corresponding data and store it all in the new pasteboard item
        repeat with aType in theTypes
            set theData to (anItem's dataForType:aType)'s mutableCopy()
            if theData is not missing value then
                (newPBItem's setData:theData forType:aType)
            end if
        end repeat
        -- add new pasteboard item to array
        (aMutableArray's addObject:newPBItem)
    end repeat
    return aMutableArray
end fetchStorableClipboard

Ahora, descomenta la primera línea de este código:

use script "Myriad Tables Lib" version "1.0.8"

Una vez que compile su código, la siguiente línea:

set theTypes to anItem's types()

cambiará automáticamente a:

set theTypes to anItem's type {}

La cuestión es que tipos pasa a ser tipo . El efecto es que este código ya no se ejecuta.

¿Alguien sabe alguna solución o cómo evitar que esto ocurra?

OS X El Capitan, versión 10.11.6.

0voto

rubik's sphere Puntos 31

Para evitar este conflicto terminológico, utilice la línea siguiente:

set theTypes to anItem's |types|()

Más información (de esta página web ):

Puede forzar un nombre de variable ilegal para que sea legal rodeándolo con barras verticales, también conocidas como "pipes".

El efecto real de las tuberías es decirle a AppleScript que suspenda su ejecución de reglas de análisis en tiempo de compilación y convierta lo que hay dentro de las tuberías en un token. La principal razón por la que esto es realmente útil es para evitar un conflicto entre un nombre de token y un término ya en uso.

Nota:

Un nombre de variable rodeado de tubos distingue entre mayúsculas y minúsculas. AppleScript no modificará las mayúsculas y minúsculas de los nombres entre comillas después de la compilación.

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