10.3 Изменения
Эта статья описывает изменения в AppleScript и связанных инструментах в Mac OS X v10.3 и его обновления.
Mac OS X v10.3 - AppleScript 1.9.2
AppleScript 1.9.2 включен с версией 10.3 Mac OS X и требует версии 10.3 Mac OS X или позже. Это содержит много новых функций и улучшений, и исправляет проблемы, найденные с AppleScript 1.9.1 и более ранними версиями.
AppleScript 1.9.2 может использовать сценарии, разработанные для любой версии AppleScript от 1,1 до 1.9.1, любое дополнение сценариев, создаваемое для AppleScript 1.5 или позже для Mac OS X и любого scriptable приложения для Mac OS 7.1 или позже.
Сценарий, создаваемый с AppleScript 1.9.2, может использоваться любой версией AppleScript назад к версии 1.1, если это не использует функции AppleScript, пишущий сценарий дополнений или scriptable приложений, которые недоступны в той версии.
Специальные замечания
Неявно закодированные типы текстов,
typeText,typeCString, иtypePString, все осуждаются с AppleScript 1.9.2, так как они неспособны к представлению международных символов и могут быть даны иное толкование непредсказуемыми способами. Кроме того,typeCStringиtypePStringне поддерживайте полный спектр текстовых приведений, и будет удален полностью в будущем выпуске.typeStyledTextиtypeIntlText, в то время как у них есть явные кодировки, не рекомендуются, так как они неспособны к представлению символов только для Unicode как венгерский, арабский или тайский язык. Рекомендуемый тип текстаtypeUnicodeText.offsetкоманда теперь игнорирует регистр по умолчанию и почестиconsideringиignoringоператоры относительноcaseиdiacriticals. Посмотрите раздел смещения ниже для получения дополнительной информации.Файлы сценария ветви ресурсов больше не могут создаваться с помощью
store script. Посмотрите раздел сценария хранилища ниже для получения дополнительной информации.path to meкоманда возвратит путь, заканчивающийся двоеточием, когда используется в приложении сценария, в котором сохранили новый связанный формат.
Разработчик отмечает
Четыре новых функции были добавлены к Open Scripting Architecture (OSA) API в версии 10.3 Mac OS X. Новые функции позволяют приложениям загрузить, выполнить и сохранить сценарии с помощью любого из старых (базируемые данные/ветвь ресурсов) или новые (связанные) форматы сценария. Новые функции
OSALoadFile(),OSALoadExecuteFile(),OSAStoreFile(), иOSADoScriptFile(). Для получения дополнительной информации посмотрите Открыть Scripting Architecture Reference.AppleScript теперь отправляет подчиненный параметр в некоторых случаях, где этому ранее не удалось. Это позволяет приложениям делать
atпараметр дляmake newдополнительный. [3039070]Системная терминология теперь читается в память только при необходимости для компиляции или decompilation. Это сокращает стоимость памяти для приложений, просто выполняющих скомпилированные сценарии. [3142099]
AppleScript теперь сохраняет международные символы лучше при компиляции источника Unicode. [3157261]
Новые функции и улучшения
AppleScript
AppleScript 1.9.2 поддерживает новый связанный формат для скомпилированных сценариев и приложений сценария (апплеты), который использует стандартные пакеты Mac OS X. Скомпилированные пакеты сценария имеют расширение файла
.scptd, в то время как пакеты апплета имеют расширение файла.app. [3150267] [3150248]Сценарии дополнений могут быть встроены в связанных апплетах путем размещения их в названной папке
Scripting Additionsв пакетеContents/Resources/папка. Обратите внимание на то, что Редактор сценариев не ищет встроенные дополнения сценариев при редактировании связанных апплетов. Любой требуемые сценарии дополнений должны быть должным образом установлены в нормальных расположениях во время разработки сценариев так, чтобы Редактор сценариев мог найти их. [3314117]Апплеты AppleScript теперь обрабатывают входящие события способом метода «первым пришел - первым вышел». До AppleScript 1.9.2 апплеты обработали входящие события способом метода «последним пришел - первым вышел». [2553648]
Неактивное возвращаемое значение обработчика может теперь быть вещественным числом. [3199911]
Вещественные числа могут теперь быть принуждены к целым числам, даже если у них есть ненулевая дробная часть. Округление используется, чтобы сделать приведение. [2849518]
monthконстанты могут теперь быть принуждены к числам. [2396328]dateкласс теперь имеет ashort date stringсвойство. Формат короткой строки даты указан Международной предпочтительной областью. [2396328]Были добавлены два новых типа:
JPEG pictureиGIF picture. [3251772]zoneкласс был удален, так как EPPC по AppleTalk не поддерживается в Mac OS X. [2967694]Когда не-URL
machineимя указано, оно, как теперь предполагается, имя Рандеву вместо имени AppleTalk. [3113390]
Стандартные дополнения
choose applicationдиалоговое окно теперь позволяет приложению быть выбранным путем ввода первых нескольких символов его имени. [3064133]choose applicationдиалоговое окно теперь выводит на экран имена локализованного приложения. [2970962]choose applicationдиалоговое окно теперь помнит свой размер и позицию. [3141005]A
choose colorкоманда была добавлена, который выводит на экран диалоговое окно средства выбора стандартного цвета и возвращает выбранный цвет как список значений RGB.default colorпараметр указывает начальный цвет. По умолчанию начальный цвет является черным. [3160380]choose file,choose file name, иchoose folderкоманды теперь имеют adefault locationпараметр, указывающий, какой каталог должен быть выведен на экран в диалоговом окне. [3143207]choose fileиchoose folderкоманды теперь имеютinvisiblesпараметр, указывающий, должны ли невидимые файлы и папки быть выведены на экран. Значение по умолчанию является истиной дляchoose fileи ложь дляchoose folder. [2690829]choose fileиchoose folderкоманды теперь имеют amultiple selections allowedпараметр, указывающий, могут ли быть выбраны многократные элементы. Значение по умолчанию является ложью. [3254466]choose fileиchoose folderкоманды теперь поддерживают Unicode и разработанные текстовые подсказки. [2836896] [3318664]choose fileиchoose folderдиалоговые окна больше не используют подсказку по умолчанию. Диалоговое окно будет только содержать подсказку, если Вы были указаны с помощьюwith promptпараметр. [2519050]choose file nameдиалоговое окно теперь имеет новый заголовок и подсказку по умолчанию. [2519050]delayкоманда теперь принимает вещественные числа. [2812515]display dialogкоманда теперь поддерживает Unicode и может теперь вывести на экран больше чем 255 символов. [3077453]do shell scriptкоманда теперь имеетasпараметр, указывающий желаемый тип результата. Значение по умолчанию должно возвратить результат как UTF-8, если это возможно. Еслиasпараметр не указан, и результатом не является допустимый UTF-8, результат будет возвращен какtypeText. [3080630] [3157877]Два новых свойства были добавлены к
file informationкласс.kindсвойство возвращает добрую строку элемента.bundle identifierесли элемент является пакетом, свойство возвращает идентификатор пакета элемента. [2884166] [3274781]info forкоманда теперь возвращаетсяshort versionиlong versionдля пакетов. [2913766]load scriptкоманда теперь поддерживает новый связанный формат для скомпилированных сценариев и апплетов. [3177719]offsetкоманда теперь игнорирует регистр по умолчанию и почестиconsideringиignoringоператоры относительноcaseиdiacriticals. В результате этих изменений команда смещения теперь ведет себя то же как другие сравнения строк AppleScript относительно случая и diacriticals. В AppleScript 1.9.1 и ранее, команда смещения всегда рассматривает случай и не соблюдает рассмотрение и игнорирование операторов. Ожидающие сценарииoffsetвсегда рассматривать случай должно будет добавить aconsidering caseоператор для поддержания предыдущего поведения. [1068386]path toкоманда теперь имеет afolder creationпараметр, указывающий, должна ли папка быть создана, если это не существует. Значение по умолчанию должно создать папку, если это возможно. Еслиwithout folder creationуказан, ошибка будет возвращена, если не будет существовать папка. [3315615]path toкоманда теперь имеет следующие новые константы папки: папка приложений, папка документов, папка избранного, домашняя папка, папка библиотеки, папка фильмов, музыкальная папка, папка изображений, общедоступная папка, совместно использовала документы, совместно использованную папку документов, папку сайтов, папку утилит. [2650692]path toкоманда теперь имеет aClassic domainпостоянный, который может использоваться сfromпараметр. [2836501]run scriptкоманда теперь поддерживает новый связанный формат для скомпилированных сценариев и апплетов. [3177719]shutdownпостоянная папка была переименованаshutdown folderпредотвратить беспорядок сshut downКоманда Finder. [2748241]store scriptкоманда может теперь сохранить в любой файл сценария формата включая новые связанные файлы сценария формата. Кроме того,store scriptможет теперь создать новый файл сценария в связанном формате (скомпилированный сценарий или апплет) или формате ветви данных (только скомпилированный сценарий). При создании нового файла сценария расширение файла определяет, какой формат создается. Файлы сценария ветви ресурсов больше не могут создаваться с помощьюstore scriptно могут быть обновлены существующие. При хранении сценария в существующий файл файл должен быть файлом сценария; ранее, файл мог содержать что-либо и'scpt'ресурс был просто добавлен к файлу. [3177719]store scriptдиалоговое окно теперь изменяемого размера и подвижно. [3148202]store scriptдиалоговое окно теперь имеет новый заголовок и подсказку по умолчанию. [2519050]
Инструменты командной строки
osacompileинструмент теперь поддерживает новый связанный формат для скомпилированных сценариев и апплетов. Если-oопция указана, и файл уже не существует,osacompileиспользует расширение файла для определения какой файл для создания. Если имя файла заканчивается.app, будет создаваться связанный апплет. Если имя файла заканчивается.scpt, будет создаваться связанный скомпилированный сценарий. Иначе, получающийся сценарий будет помещен в ветвь ресурсов и/или ветвь данных выходного файла в зависимости от того, что указаны другие опции. [3150246]osacompileинструмент теперь имеет a-s(останьтесь открытыми), опция. Когда новый связанный апплет создается, эта опция только допустима. Опция указывает, что апплет должен остаться открытым после выполнения. [3231791]osacompileинструмент теперь имеет a-u(используйте экранную заставку), опция. Когда новый связанный апплет создается, эта опция только допустима. Опция указывает, что апплет должен вывести на экран экранную заставку, когда запущено. [3231800]osascriptинструмент теперь поддерживает новый связанный формат для скомпилированных сценариев и апплетов. [3150246]osascriptкогда ошибка происходит, инструмент теперь сообщает информацию диапазона символов. [3310364]
Исправления ошибок
AppleScript
В AppleScript 1.9.1 и ранее, пути
aliasобъекты могут иметь проблемы, если они содержат символы неASCII. Это было фиксировано. [2765349]Принуждение
miles,yards, илиfeetкinchesтеперь приводит к корректному результату. Принуждениеcubic yardsилиcubic feetкcubic inchesтеперь приводит к корректному результату. [3251787]Приведения от
typeUnicodeTextкtypeTextилиtypeStyledTextтеперь обработайте символы метки порядка байтов правильно. [3115555]Приведения от
typeStyledTextкtypeUnicodeTextтеперь обработайте отказы приведения и предупреждения правильно. Когда основной язык установлен в корейский язык, в результате этого изменения сценарии в качестве примера могут теперь быть открыты в Редакторе сценариев. [3309458]Пустое
with timeoutоператор больше не вызывает катастрофический отказ или переполнение стека. [2354124]Пустое
consideringилиignoringоператор больше не вызывает катастрофический отказ или переполнение стека. [3243780]Оператор
paragraphs 2 thru -1 of ""больше не вызывает катастрофический отказ. [3342312]Получение
charactersиз очень длинной строки больше не вызывает переполнение стека. [3016960]Получение
text itemsиз строки Unicode теперь работает правильно. [3136465]Получение
text itemsилиparagraphsиз пустой строки Unicode теперь возвращается {«»} вместо {}. [3198302]Получение
text itemsиз строки теперь работает правильно когдаtext item delimitersустановлены в {}. [3146794]Произвольная форма ссылки на элемент
some itemне было очень случайно. Это было фиксировано. [3044302]containsиends withоператоры теперь работают правильно над строками больше чем с 32 767 символами. Ранее, они всегда возвращали бы false, если бы они не находили соответствие в первых 32 767 символах строки. [3126655]Операторы включения теперь работают правильно над строками Unicode, когда используется в
ignoring punctuationоператор. Ранее, они не игнорировали знаки препинания правильно при выполнении сравнений строк. [3328867]Включение и операторы сравнения теперь работают правильно над строками Unicode, когда используется в
ignoring hyphensоператор. Ранее, они не игнорировали дефисы при выполнении сравнений строк. [3329084]Включение и операторы сравнения теперь работают правильно над строками Unicode, когда используется в
ignoring white spaceоператор. Ранее, они не игнорировали пробел при выполнении сравнений строк. [3330635]Операторы включения теперь намного быстрее, когда используется на строках Unicode. [3204625]
Постоянные строки Unicode, указанные с помощью
dataкласс (т.е.«data utxt») может теперь быть принужден кtypeUnicodeTextи больше не вызывайте катастрофический отказ, когда используется с&оператор. [3222690]При определенных обстоятельствах, a
run scriptкоманда в atell application "Finder"оператор вызвал бы катастрофический отказ в предыдущих версиях AppleScript. Это было фиксировано. [3380899]AppleScript может теперь скомпилировать начинающийся URLs
https. [3113313]AppleScript теперь компилирует числа, больше, чем 4294967295 правильно. Более старые версии AppleScript компилируют числа, больше, чем 4294967295 к их значению минус 4294967296. [3247815]
Математика экспоненты теперь корректна, когда питание больше, чем 32 767 и меньше чем 65 536. [3396181]
Добавление отрицательного числа к любой дате между 01.01.1904 0:00:00 и 19.01.1972 3:14:07 теперь приводит к корректному результату. [3160911]
Операции вычитания, включающие даты ранее, чем 01.01.1904 0:00:00 теперь, приводят к корректному результату. [2861317]
Арифметика дат, включающая спецификаторы объекта даты теперь, работает как ожидалось вместо того, чтобы сообщить об ошибке, говорящей, что объектный спецификатор не может быть принужден к дате. [3187787]
Если ошибка происходит при попытке соединиться с удаленной машиной, о фактической ошибке теперь сообщают. Ранее, ошибки соединения были преобразованы в универсальное сообщение, говоря, что не мог быть считан словарь приложения. [3209734]
Если ошибка компиляции происходит около конца длинного сценария (больше чем 32 767 символов), корректная строка теперь выделяется в редакторе сценариев. [3089998]
Наклонные черты влево в строках теперь работают правильно над японскими системами. [3390330]
Если сценарий говорит приложение, не работающее к
quit, ничто не произойдет. В предыдущих версиях AppleScript приложение было бы запущено и затем сразу сказано для выхода. [2589455]AppleScript больше не отказывает при попытке разгрузить OSAX, записанный в Objective C. [3193941]
Был фиксирован катастрофический отказ, который произошел бы при определенных обстоятельствах после сборки «мусора». [3369338]
Утечки памяти были фиксированы. [3254901]
Несколько неправильных сообщений об ошибках были фиксированы, и было добавлено недостающее сообщение об ошибке. [3020705] [3290768]
Форматирование AppleScript по умолчанию было изменено. [3032595], Если Вы уже использовали AppleScript на данной машине, Вы не заметите это изменение, если Вы не сделаете ни одного следующего:
выберите Use Defaults из диалогового окна Formatting в Редакторе сценариев
удалите свои предпочтения AppleScript
установите нового пользователя (или войдите в систему на учетной записи пользователя, никогда не использовавшей AppleScript),
сделайте чистую установку операционной системы, не сохраняя или сохраняя пользовательские настройки
Стандартные дополнения
display dialogдиалоговое окно теперь обрабатывает Возврат, Войдите, и клавиши Esc правильно. [3044290] [3096706]display dialogкоманда теперь сообщает об ошибке еслиdefault buttonпараметр устанавливается на 0, отрицательное число или число, которое больше, чем общее количество кнопок. [3051124]display dialogесли запись указана как текст для отображения, команда теперь сообщает об ошибке. [3142086]do shell script with administrator privilegesтеперь различает отмененную аутентификацию и неудачную аутентификацию. [3070647]do shell script with administrator privilegesесли у администраторского пользователя нет пароля, больше не сообщает об ошибке аутентификации. [2882577]info forкоманда больше не возвращаетсяfolder windowдля пакетов.visibleсвойство теперь корректно для элементов, имя которых начинается с периода. [2884166]list folderкоманда больше не разрушает, когда дали файл вместо папки. [3267269]list folder without invisiblesбольше элементы списков, имя которых начинается с периода. [2767663]В определенных ситуациях,
open for accessкоманда попыталась бы создать файл, уже существовавший, который приведет к “двойному имени файла” ошибка. Это было фиксировано. [2827608]open for accessкоманда может теперь создать файл, имя которого содержит наклонные черты или двоеточия (какой бы ни не собственный разделитель пути для стиля пути в использовании). [3267270]path toкоманда теперь работает правильно со следующими константами папки:startup,startup items,startup items folder. [2650692]Сценарии, использующие
path to frontmost applicationкоманда теперь получит корректный путь, когда выполнено из меню Script. Ранее, команда возвратила бы путь к Системным событиям. [3084984]readкогда файл содержит текст Unicode и, команда теперь работает правильноbefore,until, илиusing delimiterпараметры были указаны. [3013987]Если
run scriptкоманда встречается с ошибкой при компиляции сценария, она теперь сообщает о фактической ошибке вместо универсальной ошибки сценария. [2304013]Проблема, вызвавшая
sayкоманда для зависания была фиксирована. [3196145]set volumeкоманда теперь устанавливает уровень громкости правильно. [3268130]the clipboardтеперь работы правильно, еслиasпараметр указан. Ранее,asпараметр был почти полностью проигнорирован. [3255134]the clipboardтеперь работы правильно, еслиasпараметр не указан. Если буфер обмена содержит только один элемент, тот элемент возвращается. Если буфер обмена будет содержать многократные элементы, и по крайней мере один из элементов является текстом, то текстовый элемент высшего качества будет возвращен. Текст Unicode предпочтен по стилизованному тексту, предпочтенному по простому тексту. Если буфер обмена содержит многократные элементы, но ни один из элементов не текст, элементы возвращаются как запись. [3334818]Были фиксированы несколько ошибок в Стандартном Дополнительном словаре. [2696269] [3034675] [3152145] [3292454] [3311842]
Mac OS X v10.3.2 - AppleScript 1.9.3
AppleScript 1.9.3 включен с версией 10.3.2 Mac OS X и требует версии 10.3 Mac OS X или позже.
Разработчик отмечает
Если текст будет пустой строкой, в AppleScript 1.9.2, принуждая AEDesc к тексту Unicode перестанет работать. Это было фиксировано. [3439141]
Исправления ошибок
AppleScript
В AppleScript 1.9.2,
with timeoutесли тайм-аут истекает, оператор не возвращает ошибку. Это было фиксировано. [3457829]При использовании японско-основной системы сценарии, компилирующие правильно с AppleScript 1.9.1, могут не скомпилировать с AppleScript 1.9.2. Это было фиксировано. [3419243]
В AppleScript 1.9.2, сохраняя пустой сценарий с Редактором сценариев 2.0 приведет к катастрофическому отказу. Это было фиксировано. [3421468]
В AppleScript 1.9.2, с помощью XCode для открытия нового
.applescriptфайл, создававшийся Интерфейсным Разработчиком, приведет к катастрофическому отказу. Это было фиксировано. [3454301]Отладка AppleScript Studio была улучшена. [3467973] Примечание, отладка AppleScript Studio требует Xcode 1.1.
Стандартные дополнения
В AppleScript 1.9.2,
mount volumeкоманда перестанет работать, если имя пользователя не будет указано, и объем не предоставляет гостевой доступ. Это было фиксировано. [3464919]
Mac OS X v10.3.5 - Стандартные Дополнения 1.9.4
Стандартные Дополнения 1.9.4 включены с версией 10.3.5 Mac OS X и требуют версии 10.3 Mac OS X или позже. Это содержит улучшения set volume команда, а также новое get volume settings команда. Обратите внимание на то, что только Стандартные Дополнения изменились в этом выпуске, время выполнения AppleScript не изменилось, и его номер версии остается 1.9.3.
Новые функции и улучшения
Стандартные дополнения
Новое
get volume settingsкоманда была добавлена, который возвращает рекордное, содержащее информацию о текущих параметрах громкости. [3467967]set volumeкоманда теперь имеет четыре новых параметра, позволяющие пользователю установитьoutput volume,input volume,alert volume, и бесшумная установка (output muted). Прямой параметр теперь осуждается. Если прямой параметр указан, все другие параметры проигнорированы. [3563760]
Исправления ошибок
Стандартные дополнения
set volumeкоманда теперь устанавливает уровень громкости правильно. [3268130] [3479316]