NSScriptObjectSpecifier
NSScriptObjectSpecifier абстрактный суперкласс для классов, инстанцирующих объектов, вызванных “объектные спецификаторы”. Объектный спецификатор представляет ссылочную форму AppleScript, которая является выражением естественного языка такой как words 10 through 20 или front document или words whose color is red.
Система сценариев отображает эти слова или фразы к атрибутам и отношениям scriptable объектов. Ссылочная форма редко происходит в изоляции; обычно оператор сценария состоит из серии ссылочных форм, которым предшествует команда и обычно подключенных друг к другу of, такой как:
get words whose color is blue of paragraph 10 of front document
Выражение words whose color is blue of paragraph 10 of front document указывает расположение в объектной модели AppleScript приложения — объекты, которые приложение делает доступным для сценаристов. Классы объектов в объектной модели часто близко соответствуют классы фактических объектов в приложении, но они не обязаны. Объектный спецификатор определяет местоположение объектов в запущенном приложении, соответствующих указанным объектам объектной модели.
Ваше приложение обычно создает объектные спецификаторы, когда оно реализует objectSpecifier метод для его scriptable классов. Тот метод определяется NSScriptObjectSpecifiers протокол.
Маловероятно, что необходимо было бы когда-либо создавать собственный подкласс NSScriptObjectSpecifier; набор допустимых ссылочных форм AppleScript определяется Apple Computer, и объектные классы спецификатора уже реализованы для этого набора. Если по некоторым причинам действительно необходимо создать подкласс, необходимо переопределить примитивный метод indicesOfObjectsByEvaluatingWithContainer:count: возвратить индексы элементам в контейнере, значения которого являются соответствующими ключу дочернего спецификатора. Кроме того, вероятно, необходимо объявить любые специальные переменные экземпляра и реализовать инициализатор, вызывающий определяемый инициализатор super, initWithContainerClassDescription:containerSpecifier:key:, и инициализирует эти переменные.
Для всесторонней обработки объектных спецификаторов, включая пример кода, посмотрите Объектные Спецификаторы в Руководстве по созданию сценариев Какао.
Наследование
-
NSObject -
NSScriptObjectSpecifier -
NSIndexSpecifier -
NSMiddleSpecifier -
NSNameSpecifier -
NSObjectSpecifier -
NSPropertySpecifier -
NSRandomSpecifier -
NSRangeSpecifier -
NSRelativeSpecifier -
NSUniqueIDSpecifier -
NSWhoseSpecifier
-
NSObject -
NSScriptObjectSpecifier -
NSIndexSpecifier -
NSMiddleSpecifier -
NSNameSpecifier -
NSObjectSpecifier -
NSPropertySpecifier -
NSRandomSpecifier -
NSRangeSpecifier -
NSRelativeSpecifier -
NSUniqueIDSpecifier -
NSWhoseSpecifier
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает новый объектный спецификатор для дескриптора события Apple.
Объявление
Swift
init?(descriptordescriptor: NSAppleEventDescriptor) -> NSScriptObjectSpecifierObjective C
+ (NSScriptObjectSpecifier *)objectSpecifierWithDescriptor:(NSAppleEventDescriptor *)descriptorПараметры
descriptorДескриптор события Apple. Дескриптор должен иметь тип
typeObjectSpecifier.Возвращаемое значение
Объектный спецификатор, или
nilесли происходит ошибка.Обсуждение
Если
objectSpecifierWithDescriptor:вызывается и перестал работать во время выполнения команды сценария, информация об ошибке, вызвавшей отказ, зарегистрирована в[NSScriptCommand currentCommand].Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
init (containerClassDescription:containerSpecifier:key:) - initWithContainerClassDescription:containerSpecifier:key:Определяемый инициализаторВозвраты
NSScriptObjectSpecifierобъект инициализируется с данными атрибутами.Объявление
Swift
init(containerClassDescriptionclassDesc: NSScriptClassDescription, containerSpecifiercontainer: NSScriptObjectSpecifier, keyproperty: String)Objective C
- (instancetype)initWithContainerClassDescription:(NSScriptClassDescription *)classDesccontainerSpecifier:(NSScriptObjectSpecifier *)containerkey:(NSString *)propertyВозвращаемое значение
NSScriptObjectSpecifierобъект инициализируется с контейнерным спецификаторомspecifier, ключkey, и описание класса объектного спецификатораclassDescription, полученный из значения ключа спецификатора.Обсуждение
Вы никогда не должны передавать
nilдля значенияclassDescription. Дочерняя ссылка получателя установлена вnil.Это - определяемый инициализатор для
NSScriptObjectSpecifier.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвраты
NSScriptObjectSpecifierобъект, инициализированный с данным контейнерным спецификатором и ключом.Объявление
Swift
convenience init(containerSpecifiercontainer: NSScriptObjectSpecifier, keyproperty: String)Objective C
- (instancetype)initWithContainerSpecifier:(NSScriptObjectSpecifier *)containerkey:(NSString *)propertyВозвращаемое значение
NSScriptObjectSpecifierобъект инициализируется с контейнерным спецификаторомspecifierи ключkey.Обсуждение
Описание класса контейнера установлено автоматически.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
indicesOfObjectsByEvaluatingWithContainer (_: количество:) - indicesOfObjectsByEvaluatingWithContainer:count:Этот примитивный метод должен быть переопределен подклассами для возврата указателя на массив индексов, идентифицирующих объекты в ключе данного контейнера, идентифицирующиеся получателем сообщения.
Объявление
Обсуждение
Этот примитивный метод должен быть переопределен подклассами для возврата указателя на массив индексов, идентифицирующих объекты в ключе контейнера
aContainerэто идентифицируется получателем сообщения. Метод использует кодирование значения ключа для получения значений на основе ключа получателя. Это возвращает число таких соответствующих объектов косвенно вnumRefs. Это возвращаетсяnilнепосредственно и –1 черезnumRefsесли все объекты в контейнере (или единственный объект) соответствуют значение ключа получателя. Этот метод вызываетсяobjectsByEvaluatingWithContainers:. Возвраты реализации по умолчаниюnilнепосредственно и –1 косвенно черезnumRefs.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает фактический объект, представленный вложенной серией объектных спецификаторов.
Объявление
Swift
var objectsByEvaluatingSpecifier: AnyObject? { get }Objective C
@property(readonly, retain) id objectsByEvaluatingSpecifierВозвращаемое значение
Фактический объект представлен вложенной серией объектных спецификаторов.
Обсуждение
Рекурсивно получает следующий контейнер во вложенной серии объектных спецификаторов, пока он не достигает контейнерного спецификатора верхнего уровня (который является любой
NSWhoseSpecifierили объект приложения), после которого это начинает оценивать каждый объектный спецификатор (objectsByEvaluatingWithContainers:) вход в противоположное направление (верхний уровень к самому внутреннему), поскольку это раскручивается от штабеля. Возвращает фактический объект, представленный вложенной серией объектных спецификаторов. Возвратыnilесли никакой контейнерный спецификатор верхнего уровня не мог бы быть найден, если контейнерный спецификатор не мог бы быть оценен или. Таким образомnilможет быть допустимое значение или может указать ошибку; можно использоватьevaluationErrorNumberопределить, если и какая ошибка произошла иevaluationErrorSpecifierсчесть контейнерный спецификатор ответственным за ошибку. В нормальном ходе обработки команды этот метод вызываетсяNSScriptCommandобъектevaluatedArgumentsиevaluatedReceiversметоды, берущие в качестве получателя сообщения самый внутренний объектный спецификатор.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает фактический объект или объекты, указанные получателем, как оценено в контексте данного контейнерного объекта.
Объявление
Swift
func objectsByEvaluatingWithContainers(_containers: AnyObject) -> AnyObject?Objective C
- (id)objectsByEvaluatingWithContainers:(id)containersВозвращаемое значение
Фактический объект или объекты, указанные получателем, как оценено в контексте его контейнерного объекта или объектов (
containers).Обсуждение
Вызывает
indicesOfObjectsByEvaluatingWithContainer:count:наselfполучить массив указателей на индексы элементов вcontainersэто имеет значения, соединенные с ключом получателя сообщения. Этот метод тогда использует кодирование значения ключа для получения объекта или объектов, связанных с ключом; это возвращает эти объекты илиnilпри отсутствии совпадающих значений в контейнерах. Если существуют многократные совпадающие значения, они возвращаются вNSArray; если совпадающие значенияnil,NSNullобъектами заменяют. ЕслиcontainersNSArray, метод рекурсивно оценивает каждый элемент в массиве и возвращаетсяNSArrayс оцененными объектами (включаяNSNulls) в их соответствующих слотах.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает описание класса объекта, обозначенного контейнерным спецификатором получателя.
Объявление
Swift
var containerClassDescription: NSScriptClassDescription?Objective C
@property(retain) NSScriptClassDescription *containerClassDescriptionВозвращаемое значение
Описание класса объекта обозначено контейнерным спецификатором получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Если контейнерный спецификатор получателя
nil, возвращает булево значение, указывающее, является ли контейнер получателя объектом, вовлеченным в тест спецификатора.Объявление
Swift
var containerIsObjectBeingTested: BoolObjective C
@property BOOL containerIsObjectBeingTestedВозвращаемое значение
YEStrueесли контейнер получателя является объектом, вовлеченным в тест спецификатора, иначеNOfalse.Обсуждение
Пример теста спецификатора
whose color is blue). Если возвращенное значениеYEStrue, тогда объект верхнего уровня является протестированным объектом (т.е. спецификатор не имеет никакого контейнерного спецификатора).Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Если контейнерный спецификатор получателя
nil, возвращает булево значение, указывающее, содержит ли контейнер для получателя диапазон элементов, представленныхNSRangeSpecifier.Объявление
Swift
var containerIsRangeContainerObject: BoolObjective C
@property BOOL containerIsRangeContainerObjectВозвращаемое значение
YEStrueесли контейнер для получателя содержит диапазон элементов, представленныхNSRangeSpecifier, иначеNOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает контейнерный спецификатор получателя.
Объявление
Swift
var containerSpecifier: NSScriptObjectSpecifier?Objective C
@property(retain) NSScriptObjectSpecifier *containerSpecifierВозвращаемое значение
Контейнерный спецификатор получателя, который является объектным спецификатором, который должен быть оценен для обеспечения контекста для оценки получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Устанавливает описание класса контейнерного спецификатора получателя к данному спецификатору.
Объявление
Swift
var containerClassDescription: NSScriptClassDescription?Objective C
@property(retain) NSScriptClassDescription *containerClassDescriptionПараметры
classDescriptionОписание класса контейнерного спецификатора получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Наборы, должен ли контейнер получателя быть объектом, вовлеченным в ссылку фильтра или объект верхнего уровня.
Объявление
Swift
var containerIsObjectBeingTested: BoolObjective C
@property BOOL containerIsObjectBeingTestedОбсуждение
Если контейнерный спецификатор получателя
nilиflagYEStrue, устанавливает контейнер получателя, чтобы быть объектом, вовлеченным в ссылку фильтра (например,whose color is blue). Если контейнерный спецификатор получателяnilиflagNOfalse, устанавливает контейнер получателя, чтобы быть объектом верхнего уровня.Если
flagYEStruesetContainerIsRangeContainerObject:не должен также быть вызван с параметромYEStrue.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает контейнерный спецификатор получателя.
Объявление
Swift
var containerSpecifier: NSScriptObjectSpecifier?Objective C
@property(retain) NSScriptObjectSpecifier *containerSpecifierПараметры
objSpecifierКонтейнерный спецификатор для получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Наборы, должен ли контейнер получателя быть контейнером для спецификатора диапазона или объекта верхнего уровня.
Объявление
Swift
var containerIsRangeContainerObject: BoolObjective C
@property BOOL containerIsRangeContainerObjectОбсуждение
Если контейнерный спецификатор получателя
nilиflagYEStrue, устанавливает контейнер получателя, чтобы быть контейнером для спецификатора диапазона. Если контейнерный спецификатор получателяnilиflagNOfalse, устанавливает контейнер получателя, чтобы быть объектом верхнего уровня.Если
flagYEStrue,setContainerIsObjectBeingTested:не должен также быть вызван с параметромYEStrue.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает дочернюю ссылку получателя.
Объявление
Swift
unowned(unsafe) var childSpecifier: NSScriptObjectSpecifier?Objective C
@property(assign) NSScriptObjectSpecifier *childSpecifierВозвращаемое значение
Дочерняя ссылка получателя, т.е. объектная оценка спецификатора к объекту или объектам, которые содержит получатель.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает дочернюю ссылку получателя.
Объявление
Swift
unowned(unsafe) var childSpecifier: NSScriptObjectSpecifier?Objective C
@property(assign) NSScriptObjectSpecifier *childSpecifierПараметры
childДочерняя ссылка получателя.
Обсуждение
Не вызывайте этот метод непосредственно; это автоматически вызывается
setContainerSpecifier:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает ключ получателя.
Возвращаемое значение
Ключ получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает описание класса объектов, указанных получателем.
Объявление
Swift
var keyClassDescription: NSScriptClassDescription? { get }Objective C
@property(readonly, retain) NSScriptClassDescription *keyClassDescriptionВозвращаемое значение
Описание класса объектов указано получателем.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Устанавливает ключ получателя.
Параметры
keyКлюч для получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает объектный спецификатор, в котором произошла ошибка оценки.
Объявление
Swift
var evaluationErrorSpecifier: NSScriptObjectSpecifier? { get }Objective C
@property(readonly, retain) NSScriptObjectSpecifier *evaluationErrorSpecifierВозвращаемое значение
Объектный спецификатор, в котором произошла ошибка оценки.
Обсуждение
Объектный спецификатор, не удающийся оценить, мог быть получателем или любым контейнерным спецификатором «выше» получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает постоянную идентификацию типа ошибки, заставившей оценку перестать работать.
Объявление
Swift
var evaluationErrorNumber: IntObjective C
@property NSInteger evaluationErrorNumberВозвращаемое значение
Постоянная идентификация типа ошибки, заставившей оценку перестать работать.
Обсуждение
Этот код ошибки мог быть связан с получателем или любым контейнерным спецификатором «выше» получателя. Возможные возвращаемые значения определяются в Константах.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает значение ошибки оценки.
Объявление
Swift
var evaluationErrorNumber: IntObjective C
@property NSInteger evaluationErrorNumberПараметры
errorЗначение для ошибки оценки.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает дескриптор события Apple, представляющий получатель.
Объявление
Swift
@NSCopying var descriptor: NSAppleEventDescriptor? { get }Objective C
@property(readonly, copy) NSAppleEventDescriptor *descriptorВозвращаемое значение
Дескриптор события Apple типа
typeObjectSpecifier.Обсуждение
Если получатель создавался с
objectSpecifierWithDescriptor:, переданный - в дескрипторе возвращается. Иначе, новый дескриптор создан и возвращен, автовыпущен.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
-
NSScriptObjectSpecifierобеспечивает следующие константы для кодов ошибки для определенных проблем, оценивая спецификаторы:Объявление
Swift
var NSNoSpecifierError: Int { get } var NSNoTopLevelContainersSpecifierError: Int { get } var NSContainerSpecifierError: Int { get } var NSUnknownKeySpecifierError: Int { get } var NSInvalidIndexSpecifierError: Int { get } var NSInternalSpecifierError: Int { get } var NSOperationNotSupportedForKeySpecifierError: Int { get }Objective C
enum { NSNoSpecifierError = 0, NSNoTopLevelContainersSpecifierError, NSContainerSpecifierError, NSUnknownKeySpecifierError, NSInvalidIndexSpecifierError, NSInternalSpecifierError, NSOperationNotSupportedForKeySpecifierError };Константы
-
NSNoSpecifierErrorNSNoSpecifierErrorНикакая ошибка не встретилась.
Доступный в OS X v10.0 и позже.
-
NSNoTopLevelContainersSpecifierErrorNSNoTopLevelContainersSpecifierErrorКто-то вызвал
evaluateсnil.Доступный в OS X v10.0 и позже.
-
NSContainerSpecifierErrorNSContainerSpecifierErrorОшибка оценивая контейнерный спецификатор.
Доступный в OS X v10.0 и позже.
-
NSUnknownKeySpecifierErrorNSUnknownKeySpecifierErrorПолучатели не понимают ключ.
Доступный в OS X v10.0 и позже.
-
NSInvalidIndexSpecifierErrorNSInvalidIndexSpecifierErrorИндекс за пределы.
Доступный в OS X v10.0 и позже.
-
NSInternalSpecifierErrorNSInternalSpecifierErrorДругая внутренняя ошибка.
Доступный в OS X v10.0 и позже.
-
NSOperationNotSupportedForKeySpecifierErrorNSOperationNotSupportedForKeySpecifierErrorПопытка, предпринятая для выполнения недопустимой операции на некотором ключе.
Доступный в OS X v10.0 и позже.
-
