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.