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(commandDescription
commandDesc
: 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: Int32
Objective 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: Int32
Objective 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 };
Константы
-
NSNoScriptError
NSNoScriptError
Никакая ошибка.
Доступный в OS X v10.0 и позже.
-
NSReceiverEvaluationScriptError
NSReceiverEvaluationScriptError
Объект или объекты, указанные прямым параметром к команде, не могли быть найдены.
Доступный в OS X v10.0 и позже.
-
NSKeySpecifierEvaluationScriptError
NSKeySpecifierEvaluationScriptError
Объект или объекты, указанные ключом (для команд, поддерживающих ключевые спецификаторы), не могли быть найдены.
Доступный в OS X v10.0 и позже.
-
NSArgumentEvaluationScriptError
NSArgumentEvaluationScriptError
Объект, указанный параметром, не мог быть найден.
Доступный в OS X v10.0 и позже.
-
NSReceiversCantHandleCommandScriptError
NSReceiversCantHandleCommandScriptError
Получатели не поддерживают команду, отправленную им.
Доступный в OS X v10.0 и позже.
-
NSRequiredArgumentsMissingScriptError
NSRequiredArgumentsMissingScriptError
Параметр (или больше чем один параметр) отсутствуют.
Доступный в OS X v10.0 и позже.
-
NSArgumentsWrongScriptError
NSArgumentsWrongScriptError
Параметр (или больше чем один параметр) имеют неправильный тип или иначе недопустимы.
Доступный в OS X v10.0 и позже.
-
NSUnknownKeyScriptError
NSUnknownKeyScriptError
Произошла неопознанная ошибка; указывает ошибку в поддержке сценариев Вашего приложения.
Доступный в OS X v10.0 и позже.
-
NSInternalScriptError
NSInternalScriptError
Произошла неопознанная внутренняя ошибка; указывает ошибку в поддержке сценариев Вашего приложения.
Доступный в OS X v10.0 и позже.
-
NSOperationNotSupportedForKeyScriptError
NSOperationNotSupportedForKeyScriptError
Реализация команды сценариев сигнализировала ошибку.
Доступный в OS X v10.0 и позже.
-
NSCannotCreateScriptCommandError
NSCannotCreateScriptCommandError
Не удалось создать команду сценария; было получено недопустимое или нераспознанное событие Apple.
Доступный в OS X v10.0 и позже.
-