10.0 Изменения
Эта статья описывает изменения в AppleScript и связанных инструментах в Mac OS X v10.0.
Mac OS X v10.0 - AppleScript 1.6
AppleScript 1.6 включен с версией 10.0 Mac OS X и требует версии 10.0 Mac OS X или позже.
Разработчик отмечает
Новый вызов,
OSACopyScript(), создаст независимый клон существующего OSAID.OSACopyID(), для сравнения, создает новую ссылку на существующий объект.Обработчики событий всегда были в состоянии принять
asпараметр, но не имели никакого способа указать к AppleScript, что они обработали приведение. Это создает проблемы, когда обработчик фактически возвращает список требуемого типа - AppleScript думает, что потребности списка принуждены и имеет тенденцию или приводить к сбою или делать неправильную вещь. Обходное решение должно было определить тип «списка типов» и обработчик приведения от этого до простого списка, просто копирующего дескриптор. Средство поискаalias listвведите, например, реализован этот путь. Существует теперь лучший путь: если Вы беретеasпараметр, и Вы не хотите, чтобы AppleScript попытался принудить Ваш результат, поместить булево истинное значение вkeyAppHandledCoercionпараметр результата. AppleScript обнаружит этот параметр и оставит результат без изменений.Mac OS X не поддерживает дополнения сценариев (OSAXen), созданный для Mac OS 9. Поскольку только приложения могут безопасно соединиться с CarbonLib на Mac OS 9, писание сценарий дополнений на 9 должно соединиться с InterfaceLib, не поддерживающимся на Mac OS X. Сценарии дополнений для Mac OS X прибывают в две разновидности: CFM и Мужественный. Для CFM следуйте за направлениями в Технических замечаниях TN1164, чтобы создать его как совместно используемую библиотеку, но соединиться с CarbonLib вместо InterfaceLib.
Мужественные дополнения сценариев упаковываются как пакеты. Используя Разработчика Проекта, создайте цель Пакета и удостоверьтесь, что она имеет любого a
CFBundleSignatureиз'osax'или имя, заканчивающееся.osax. Размещение кода является по существу тем же как дополнением сценариев CFM, но вместо того, чтобы использовать инициализацию CFM и подпрограммы завершения плюсgAdditionReferenceCountглобальная переменная, AppleScript ищет три точки входа:SAInitialize,SATerminate, иSAIsBusy, со следующими прототипами:additionBundleссылка на Ваше собственное дополнение; можно сохранить его для будущего использования или проигнорировать его и полагаться собственный идентификатор пакета.SAIsBusyэквивалентно тестированию наgAdditionReferenceCountне равняются нулю.Возможно создать связанное дополнение сценариев, содержащее и 9 и X версий, таким образом давая Вам единственное распределение файла, но необходимо было установить AppleScript 1.6 и CarbonLib 1.3 на Mac OS 9.1 для него для работы с Mac OS 9.
Важное различие от Mac OS 9 - то, что в Mac OS X, пишущие сценарий дополнения загружаются отдельно в каждое приложение, соединяющееся с AppleScript. Это означает, что (1) могут быть многократные экземпляры Вашего дополнения, работающего на системе, так быть тщательны относительно управления совместно используемым ресурсом; и (2) Вы не можете предположить, что любое случайное приложение имеет доступ к Вашему дополнению, таким образом отправление необработанного AppleEvents к приложению будет не обязательно работать. (например, отправляя
syso/beepк Средству поиска возвратится не обработанный.) AppleScript встроили обходное решение в него так, чтобы сценарии все еще работали, но приложения, использующие AppleEvents непосредственно, могут испытать затруднения.
Новые функции и улучшения
AppleScript
Unicode textтип данных рос в функциональности начиная с AppleScript 1.3 и теперь сопоставим в функциональности сstringтип данных. Мало того, что текстовые строки Unicode могут быть получены из и отправлены в приложения, они выводят на экран должным образом в окнах Results и Event Log Редактора сценариев (и сторонние редакторы); к ним можно получить доступ сcharacter,word,paragraph, иtext itemклассы элемента иfirst,last,middle,some, иeveryформы доступа; на них можно управлять с&(связь) оператор; и они могут быть по сравнению сless than,greater than,less than or equal to,greater than or equal to,equals,contains,is contained by,begins with, иends withоператоры. Дляtext itemэлементы строки Unicode,text item delimitersможет быть или строка или текстовые значения Unicode. При сравнении строк Unicode,consideringиignoringконструкции поддерживаются дляcase,diacriticalsиpunctuation.AppleScript 1.6 поддерживает много изменений в общей работе системы, представленной в Mac OS X. Это может использовать приложения и дополнения сценариев, которые сохранены как пакеты или пакеты для Mac OS X. Это может загрузить сценарии и терминологию приложения от файлов, не имеющих традиционных ветвей ресурсов Mac OS. Это размещает факт, что много приложений Mac OS X фактически имеют a
.appрасширение файла, которое скрыто от пользователя.
Инструменты командной строки
Существует два новых инструмента командной строки,
osascriptиosacompile, это позволило Вам выполнить и скомпилировать сценарии от оболочки Unix. Для полного изложения см. их соответствующие страницы справочника.
Исправления ошибок
AppleScript
AppleScript 1.6 устраняет долгосрочную проблему в AppleScript, в котором сценарии могут утверждать, что исчерпали память, даже когда много памяти доступно.
AppleScript 1.4.3 и 1.5.5 имел редкие проблемы с апплетами, теряющими след глобальных переменных; эти проблемы были устранены в AppleScript 1.6.
AppleScript 1.6 возвращает более корректные результаты определенных необычных операций (
item 0из списка,set text item delimiters to {},strings ofстрока,strings ofсписок, не содержащий строки), куда предыдущие версии AppleScript возвратили бы бесполезные результаты или сбой для сигнализации надлежащих ошибок.
Стандартные дополнения
AppleScript 1.6 имеет улучшения
random numberкоманда, для создания случайных чисел более равномерно распределенными и менее предсказуемыми.readиwriteкоманды могут теперь работать с файлами, больше, чем 2 ГБ в размере. Кроме того, все проблемы, представленные в командах Read/Write в AppleScript 1.5 и 1.5.5, были устранены, и несколько долгосрочных проблем с чтением и написанием списков, и записи были фиксированы.Copyright © 2001-2007 Apple Inc.