NSScriptCommand
Экземпляр NSScriptCommand представляет оператор сценариев, такой как set word 5 of the front document to word 1 of the second document, и содержит информацию, должен был выполнить работу, указанную оператором.
Когда событие Apple достигает приложения Какао, встроенная поддержка сценариев Какао преобразовывает его в команду сценария (т.е. экземпляр NSScriptCommand или один из подклассов, предоставленных сценариями Какао или Вашим приложением), и выполняет команду в контексте приложения. Выполнение команды означает или вызов селектора, связанного с командой на объекте или объекты, определяемые для получения команды, или наличие команды выполняет свой метод реализации по умолчанию (performDefaultImplementation).
Ваше приложение наиболее вероятно вызывает методы NSScriptCommand извлечь аргументы команды. Вы делаете это любой в performDefaultImplementation метод подкласса команды Вы создали, или в методе объекта, определяемом как селектор для обработки определенной команды.
Как часть стандартных сценариев Какао реализации, NSScriptCommand и его подклассы могут обработать набор команд по умолчанию для Стандартного комплекта AppleScript для большинства приложений без любого разделения на подклассы. Стандартный комплект включает команды такой как copy, count, create, delete, exists, и move, а также общие классы объектов такой как application, document, и window.
Для получения дополнительной информации о работе с командами сценария посмотрите Команды Сценария в Руководстве по созданию сценариев Какао.
Наследование
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
init (commandDescription:) - initWithCommandDescription:Определяемый инициализаторВозвращает объект команды сценария, инициализированный из переданного описания команды.
Объявление
Swift
init(commandDescriptioncommandDesc: NSScriptCommandDescription)Objective C
- (instancetype)initWithCommandDescription:(NSScriptCommandDescription *)commandDescПараметры
commandDescОписание команды для команды, которая будет создаваться.
Возвращаемое значение
Недавно инициализированный экземпляр
NSScriptCommandили подкласс.Обсуждение
Для создания этого объекта команды применимым необходимо установить его принимающие объекты и параметры (если таковые имеются) после вызова этого метода.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Если команда выполняется в текущем потоке встроенной обработкой событий Apple сценариев Какао, возвратите команду.
Объявление
Swift
class func currentCommand() -> NSScriptCommand?Objective C
+ (NSScriptCommand *)currentCommandОбсуждение
Команда выполняется в текущем потоке встроенной обработкой событий Apple сценариев Какао если экземпляр
NSScriptCommandобрабатываетexecuteCommandсообщение в сейчас же как результат отгрузки события Apple. Возвратыnilиначе.setScriptErrorNumber:иsetScriptErrorString:сообщения, отправленные в возвращенный объект команды, будут влиять на событие ответа, отправленное в отправителя события, из которого была создана команда, если отправитель запросил ответ.Приостановленную команду не считают текущей командой. Если команда приостановлена, и никакая другая команда не выполняется в текущем потоке,
currentCommandвозвратыnil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Если получатель был создан встроенной обработкой событий Apple сценариев Какао, возвращает дескриптор события Apple, из которого это было создано.
Объявление
Swift
@NSCopying var appleEvent: NSAppleEventDescriptor? { get }Objective C
@property(readonly, copy) NSAppleEventDescriptor *appleEventОбсуждение
Эффекты видоизменения или сохранения этого дескриптора не определены, несмотря на то, что это может быть скопировано.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Выполняет команду, если это допустимо и возвращает результат, если таковые имеются.
Объявление
Swift
func executeCommand() -> AnyObject?Objective C
- (id)executeCommandОбсуждение
Прежде чем этот метод выполняет команду (через
NSInvocationмеханизмы), это оценивает все объектные спецификаторы, вовлеченные в команду, проверяет это, получатели могут фактически обработать команду и проверяют, что типы любых параметров, которые были первоначально объектными спецификаторами, допустимы.Вам не придется переопределить этот метод. Если получатели команды хотят обработать команду сами, этот метод вызывает их определенный обработчик. Иначе, это вызывает
performDefaultImplementation.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Переопределенный подклассами для обеспечения реализации по умолчанию для команды, представленной получателем.
Объявление
Swift
func performDefaultImplementation() -> AnyObject?Objective C
- (id)performDefaultImplementationОбсуждение
Не вызывайте этот метод непосредственно.
executeCommandкогда выполняемая команда не поддерживается классом объектов, получающих команду, вызывает этот метод. Возвраты реализации по умолчаниюnil.Необходимо создать подкласс
NSScriptCommandтолько если необходимо обеспечить реализацию по умолчанию команды.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает объект или возражает, в который команда должна быть отправлена (названная обоими «получатели» или «цели» команд сценария).
Объявление
Swift
var evaluatedReceivers: AnyObject? { get }Objective C
@property(readonly, retain) id evaluatedReceiversОбсуждение
Это оценивает получатели, которые всегда являются объектными спецификаторами к надлежащему объекту. Если команда не указывает получатель, или если получатель не принимает команду, это возвращается
nil.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает объектный спецификатор, когда оценено, приводящий к получателю или получателям команды.
Объявление
Swift
var receiversSpecifier: NSScriptObjectSpecifier?Objective C
@property(retain) NSScriptObjectSpecifier *receiversSpecifierОбсуждение
Получатель обычно является контейнером. Например, если исходная команда
get the third paragraph of the first document, спецификатор получателяthe first document— это - документ, знающий, как получить или установить слова или абзацы, которые это содержит.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Устанавливает объектный спецификатор в
receiversSpecэто, когда оценено, указывает получатель или получатели команды.Объявление
Swift
var receiversSpecifier: NSScriptObjectSpecifier?Objective C
@property(retain) NSScriptObjectSpecifier *receiversSpecifierОбсуждение
Если Вы создаете подкласс
NSScriptCommand, необходимо не обязательно переопределить этот метод, хотя некоторые подклассы Какао делают. Переопределение должно выполнить ту же функцию как метод суперкласса с критическим различием: это заставляет контейнерную часть спецификатора переданного - в объектном спецификаторе становиться спецификатором получателя команды и ключевой ролью переданного - в объектном спецификаторе для становления ключевым спецификатором. В переопределении, например, еслиreceiversRefспецификатор дляthe third rectangle of the first document, спецификатор получателяthe first documentв то время как ключевой спецификаторthe third rectangle.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает параметры команды.
Объявление
Swift
var arguments: [NSObject : AnyObject]!Objective C
@property(copy) NSDictionary *argumentsОбсуждение
Если нет никаких параметров, возвращает пустое
NSDictionaryобъект. Когда Вы разделяете на подклассыNSScriptCommandили один из его подклассов, Вы редко вызываете этот метод, потому что это возвращает параметры непосредственно, не оценивая параметров, которые являются объектными спецификаторами. Если каким-либо из параметров команды могут быть объектные спецификаторы, который обычно имеет место, вызватьevaluatedArgumentsвместо этого.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает словарь, содержащий параметры команды, оцененной от объектных спецификаторов до объектов при необходимости. Ключи в словаре являются именами параметра.
Объявление
Swift
var evaluatedArguments: [NSObject : AnyObject]? { get }Objective C
@property(readonly, copy) NSDictionary *evaluatedArgumentsОбсуждение
Параметрами первоначально может быть или обычный объект или объектный спецификатор такой как
word 5(представленный как экземплярNSScriptObjectSpecifierподкласс). Если параметрами являются объектные спецификаторы, получатель оценивает их перед использованием ссылочных объектов. Возвратыnilесли не хорошо формируется команда. Также возвратыnilесли нет никакого типа, определенного для параметра в описании команды, если объектный спецификатор не оценивает к объекту или.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает параметры команды к
args.Объявление
Swift
var arguments: [NSObject : AnyObject]!Objective C
@property(copy) NSDictionary *argumentsОбсуждение
Каждый параметр в словаре идентифицируется тем же ключом имени, используемым для параметра в объявлении класса команды в файле комплекта сценария.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает объект, соответствующий прямому параметру события Apple, из которого происходит получатель.
Объявление
Swift
var directParameter: AnyObject?Objective C
@property(retain) id directParameterВозвращаемое значение
Объект. Возвраты
nilесли полученное событие Apple не содержит прямой параметр.Обсуждение
Например, прямой параметр a
print documentsСобытие Apple содержит список документов. Этот метод может возвратить тот же объект или объекты, возвращенныеreceiversSpecifier.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает объект, соответствующий прямому параметру события Apple, из которого происходит получатель.
Объявление
Swift
var directParameter: AnyObject?Objective C
@property(retain) id directParameterПараметры
directParameterОбъект, который будет установлен как прямой параметр.
Обсуждение
Вы обычно не переопределяете этот метод.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает описание команды для команды.
Объявление
Swift
var commandDescription: NSScriptCommandDescription { get }Objective C
@property(readonly, retain) NSScriptCommandDescription *commandDescriptionОбсуждение
Как только команда создается, ее описание команды неизменное.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
isWellFormed - isWellFormedДоступный в OS X v10.0 через OS X v10.9Возвращает булево значение, указывающее, формируется ли получатель хорошо согласно его описанию команды.
Объявление
Objective C
- (BOOL)isWellFormedОбсуждение
Метод гарантирует, что существует описание команды и что число параметров и типы параметров неспецификатора соответствуют описанию команды.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.0 через OS X v10.9.
См. также
-
Возвращает дескриптор типа, помещенный в событие Apple ответа, если отправитель запросил ответ, выполнение получателя, завершенного, и код ошибки был установлен.
Объявление
Swift
var scriptErrorExpectedTypeDescriptor: NSAppleEventDescriptor?Objective C
@property(retain) NSAppleEventDescriptor *scriptErrorExpectedTypeDescriptorВозвращаемое значение
Дескриптор, указывающий тип.
Обсуждение
Когда ошибка происходит во время выполнения команды сценария, потому что дескриптор события Apple не имел ожидаемого типа, и отправитель запросил ответ, сценарии Какао возвращают дескриптор для ожидаемого типа в событии Apple ответа. Можно вызвать
setScriptErrorExpectedTypeDescriptor:установить этот дескриптор непосредственно.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает код ошибки сценария, если таковые имеются, связанный с выполнением команды.
Объявление
Swift
var scriptErrorNumber: Int32Objective C
@property int scriptErrorNumberОбсуждение
При разделении на подклассы NSScriptCommand или одного из его подклассов Вы не должны должны быть переопределять этот метод.
Для состояний ошибки, определенных для Вашего приложения, можно определить собственные ошибочные возвращаемые значения. Для некоторых распространенных ошибок можно хотеть возвратить ошибочные значения, определенные в
MacErrors.h, заголовок вCarbonCore.framework(подплатформаCoreServices.framework). Ищите ошибочные константы, запускающиеся сerrAE. Например,errAEEventNotHandledуказывает, что обработчик не смог обработать событие Apple.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает объектный дескриптор, помещенный в событие Apple ответа, если отправитель запросил ответ, выполнение получателя, завершенного, и код ошибки был установлен.
Объявление
Swift
var scriptErrorOffendingObjectDescriptor: NSAppleEventDescriptor?Objective C
@property(retain) NSAppleEventDescriptor *scriptErrorOffendingObjectDescriptorВозвращаемое значение
Дескриптор, указывающий объект.
Обсуждение
Когда ошибка, происходящая во время выполнения команды сценария, вызывается конкретным объектом, и отправитель запросил ответ, сценарии Какао возвращают дескриптор для незаконного объекта в событии Apple ответа. Можно вызвать
setScriptErrorOffendingObjectDescriptor:установить этот дескриптор непосредственно.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает строку ошибки сценария, если таковые имеются, связанный с выполнением команды.
Объявление
Swift
var scriptErrorString: String?Objective C
@property(copy) NSString *scriptErrorStringОбсуждение
Когда Вы разделяете на подклассы
NSScriptCommandили один из его подклассов, Вы не должны должны быть переопределять этот метод.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает дескриптор для ожидаемого типа, который будет помещен в событие Apple ответа, если отправитель запросил ответ, выполнение получателя завершается, и код ошибки был установлен.
Объявление
Swift
var scriptErrorExpectedTypeDescriptor: NSAppleEventDescriptor?Objective C
@property(retain) NSAppleEventDescriptor *scriptErrorExpectedTypeDescriptorПараметры
errorExpectedTypeDescriptorДескриптор, указывающий тип.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Устанавливает дескриптор для объекта, который будет помещен в событие Apple ответа, если отправитель запросил ответ, выполнение получателя завершается, и код ошибки был установлен.
Объявление
Swift
var scriptErrorOffendingObjectDescriptor: NSAppleEventDescriptor?Objective C
@property(retain) NSAppleEventDescriptor *scriptErrorOffendingObjectDescriptorПараметры
errorOffendingObjectDescriptorДескриптор, указывающий объект, который был ответственен за ошибку.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Устанавливает код ошибки сценария, связанный с выполнением команды и возвращающийся в событии Apple ответа, если ответ требовал отправитель.
Объявление
Swift
var scriptErrorNumber: Int32Objective C
@property int scriptErrorNumberПараметры
errorNumberКод ошибки для соединения с командой.
Обсуждение
Если Вы переопределяете
performDefaultImplementationи ошибка происходит, необходимо вызвать этот метод для предоставления надлежащего кода ошибки. Фактически, когда ошибка происходит, любой обработчик сценария должен вызвать этот метод. Код ошибки, который Вы предоставляете, возвращается в событии Apple ответа.Вызов
setScriptErrorNumber:заставляет сообщение об ошибке быть выведенным на экран. Для соединения определенного сообщения об ошибке с кодом ошибки Вы вызываетеsetScriptErrorString:. Это целесообразно, например при установке кода ошибки, который является определенным для приложения, или когда можно предоставить определенное и полезное сообщение об ошибке пользователю.Если
setScriptErrorNumber:вызывается наNSScriptCommandс многократными получателями команда прекратит отправлять сообщения обработки команды в большее количество получателей.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает строку ошибки сценария, связанную с выполнением команды.
Объявление
Swift
var scriptErrorString: String?Objective C
@property(copy) NSString *scriptErrorStringПараметры
errorStringСтрока, описывающая ошибку.
Обсуждение
Если Вы переопределяете
performDefaultImplementationи ошибка происходит, необходимо вызвать этот метод для предоставления строки, обеспечивающей полезное объяснение. Фактически, когда ошибка происходит, любой обработчик сценария должен вызвать этот метод.Вызов одного только этого метода не заставляет сообщение об ошибке быть быть выведенным на экран — необходимо также вызвать
setScriptErrorNumber:предоставлять код ошибки.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Приостанавливает выполнение получателя.
Объявление
Swift
func suspendExecution()Objective C
- (void)suspendExecutionОбсуждение
Приостанавливает выполнение получателя, только если получатель выполняется в текущем потоке встроенной обработкой событий Apple сценариев Какао (т.е. получатель был бы возвращен
[NSScriptCommand currentCommand]) — иначе, ничего не делает. Соответствующий вызовresumeExecutionWithResult:должен быть сделан.В то время как команда приостановлена, другая команда может выполниться.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Если успешное, несопоставленное, вызов
suspendExecutionбыл сделан, возобновите выполнение команды.Объявление
Swift
func resumeExecutionWithResult(_result: AnyObject?)Objective C
- (void)resumeExecutionWithResult:(id)resultОбсуждение
Возобновляет выполнение команды если успешное, несопоставленное, вызов
suspendExecutionбыл сделан — иначе, ничего не делает. Значение дляresultзависит от сегмента выполнения команды, приостановленного:Если
suspendExecutionбыл вызван из обработчика команды одного из получателей команды,resultсчитается возвращаемым значением обработчика. Если команда не получила asetScriptErrorNumber:сообщение с ненулевым кодом ошибки, выполнение команды будет продолжаться, и обработчики команды других получателей будут вызваны.Если
suspendExecutionбыл вызван из переопределенияperformDefaultImplementationрезультат обрабатывается, как будто это было возвращаемое значение вызоваperformDefaultImplementation.
resumeExecutionWithResult:может быть вызван в любом потоке, не только том в который соответствующий вызовsuspendExecutionпроизошедший.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
NSScriptCommandиспользует следующие коды ошибки для общекомандных проблем выполнения:Объявление
Swift
var NSNoScriptError: Int { get } var NSReceiverEvaluationScriptError: Int { get } var NSKeySpecifierEvaluationScriptError: Int { get } var NSArgumentEvaluationScriptError: Int { get } var NSReceiversCantHandleCommandScriptError: Int { get } var NSRequiredArgumentsMissingScriptError: Int { get } var NSArgumentsWrongScriptError: Int { get } var NSUnknownKeyScriptError: Int { get } var NSInternalScriptError: Int { get } var NSOperationNotSupportedForKeyScriptError: Int { get } var NSCannotCreateScriptCommandError: Int { get }Objective C
enum { NSNoScriptError = 0, NSReceiverEvaluationScriptError, NSKeySpecifierEvaluationScriptError, NSArgumentEvaluationScriptError, NSReceiversCantHandleCommandScriptError, NSRequiredArgumentsMissingScriptError, NSArgumentsWrongScriptError, NSUnknownKeyScriptError, NSInternalScriptError, NSOperationNotSupportedForKeyScriptError, NSCannotCreateScriptCommandError };Константы
-
NSNoScriptErrorNSNoScriptErrorНикакая ошибка.
Доступный в OS X v10.0 и позже.
-
NSReceiverEvaluationScriptErrorNSReceiverEvaluationScriptErrorОбъект или объекты, указанные прямым параметром к команде, не могли быть найдены.
Доступный в OS X v10.0 и позже.
-
NSKeySpecifierEvaluationScriptErrorNSKeySpecifierEvaluationScriptErrorОбъект или объекты, указанные ключом (для команд, поддерживающих ключевые спецификаторы), не могли быть найдены.
Доступный в OS X v10.0 и позже.
-
NSArgumentEvaluationScriptErrorNSArgumentEvaluationScriptErrorОбъект, указанный параметром, не мог быть найден.
Доступный в OS X v10.0 и позже.
-
NSReceiversCantHandleCommandScriptErrorNSReceiversCantHandleCommandScriptErrorПолучатели не поддерживают команду, отправленную им.
Доступный в OS X v10.0 и позже.
-
NSRequiredArgumentsMissingScriptErrorNSRequiredArgumentsMissingScriptErrorПараметр (или больше чем один параметр) отсутствуют.
Доступный в OS X v10.0 и позже.
-
NSArgumentsWrongScriptErrorNSArgumentsWrongScriptErrorПараметр (или больше чем один параметр) имеют неправильный тип или иначе недопустимы.
Доступный в OS X v10.0 и позже.
-
NSUnknownKeyScriptErrorNSUnknownKeyScriptErrorПроизошла неопознанная ошибка; указывает ошибку в поддержке сценариев Вашего приложения.
Доступный в OS X v10.0 и позже.
-
NSInternalScriptErrorNSInternalScriptErrorПроизошла неопознанная внутренняя ошибка; указывает ошибку в поддержке сценариев Вашего приложения.
Доступный в OS X v10.0 и позже.
-
NSOperationNotSupportedForKeyScriptErrorNSOperationNotSupportedForKeyScriptErrorРеализация команды сценариев сигнализировала ошибку.
Доступный в OS X v10.0 и позже.
-
NSCannotCreateScriptCommandErrorNSCannotCreateScriptCommandErrorНе удалось создать команду сценария; было получено недопустимое или нераспознанное событие Apple.
Доступный в OS X v10.0 и позже.
-
