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?(descriptor
descriptor
: 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(containerClassDescription
classDesc
: NSScriptClassDescription, containerSpecifiercontainer
: NSScriptObjectSpecifier, keyproperty
: String)Objective C
- (instancetype)initWithContainerClassDescription:(NSScriptClassDescription *)
classDesc
containerSpecifier:(NSScriptObjectSpecifier *)container
key:(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(containerSpecifier
container
: NSScriptObjectSpecifier, keyproperty
: String)Objective C
- (instancetype)initWithContainerSpecifier:(NSScriptObjectSpecifier *)
container
key:(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
объектами заменяют. Еслиcontainers
NSArray
, метод рекурсивно оценивает каждый элемент в массиве и возвращается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: Bool
Objective C
@property BOOL containerIsObjectBeingTested
Возвращаемое значение
YES
true
если контейнер получателя является объектом, вовлеченным в тест спецификатора, иначеNO
false
.Обсуждение
Пример теста спецификатора
whose color is blue
). Если возвращенное значениеYES
true
, тогда объект верхнего уровня является протестированным объектом (т.е. спецификатор не имеет никакого контейнерного спецификатора).Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Если контейнерный спецификатор получателя
nil
, возвращает булево значение, указывающее, содержит ли контейнер для получателя диапазон элементов, представленныхNSRangeSpecifier
.Объявление
Swift
var containerIsRangeContainerObject: Bool
Objective C
@property BOOL containerIsRangeContainerObject
Возвращаемое значение
YES
true
если контейнер для получателя содержит диапазон элементов, представленныхNSRangeSpecifier
, иначеNO
false
.Оператор импорта
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: Bool
Objective C
@property BOOL containerIsObjectBeingTested
Обсуждение
Если контейнерный спецификатор получателя
nil
иflag
YES
true
, устанавливает контейнер получателя, чтобы быть объектом, вовлеченным в ссылку фильтра (например,whose color is blue
). Если контейнерный спецификатор получателяnil
иflag
NO
false
, устанавливает контейнер получателя, чтобы быть объектом верхнего уровня.Если
flag
YES
true
setContainerIsRangeContainerObject:
не должен также быть вызван с параметромYES
true
.Оператор импорта
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: Bool
Objective C
@property BOOL containerIsRangeContainerObject
Обсуждение
Если контейнерный спецификатор получателя
nil
иflag
YES
true
, устанавливает контейнер получателя, чтобы быть контейнером для спецификатора диапазона. Если контейнерный спецификатор получателяnil
иflag
NO
false
, устанавливает контейнер получателя, чтобы быть объектом верхнего уровня.Если
flag
YES
true
,setContainerIsObjectBeingTested:
не должен также быть вызван с параметромYES
true
.Оператор импорта
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: Int
Objective C
@property NSInteger evaluationErrorNumber
Возвращаемое значение
Постоянная идентификация типа ошибки, заставившей оценку перестать работать.
Обсуждение
Этот код ошибки мог быть связан с получателем или любым контейнерным спецификатором «выше» получателя. Возможные возвращаемые значения определяются в Константах.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает значение ошибки оценки.
Объявление
Swift
var evaluationErrorNumber: Int
Objective 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 };
Константы
-
NSNoSpecifierError
NSNoSpecifierError
Никакая ошибка не встретилась.
Доступный в OS X v10.0 и позже.
-
NSNoTopLevelContainersSpecifierError
NSNoTopLevelContainersSpecifierError
Кто-то вызвал
evaluate
сnil
.Доступный в OS X v10.0 и позже.
-
NSContainerSpecifierError
NSContainerSpecifierError
Ошибка оценивая контейнерный спецификатор.
Доступный в OS X v10.0 и позже.
-
NSUnknownKeySpecifierError
NSUnknownKeySpecifierError
Получатели не понимают ключ.
Доступный в OS X v10.0 и позже.
-
NSInvalidIndexSpecifierError
NSInvalidIndexSpecifierError
Индекс за пределы.
Доступный в OS X v10.0 и позже.
-
NSInternalSpecifierError
NSInternalSpecifierError
Другая внутренняя ошибка.
Доступный в OS X v10.0 и позже.
-
NSOperationNotSupportedForKeySpecifierError
NSOperationNotSupportedForKeySpecifierError
Попытка, предпринятая для выполнения недопустимой операции на некотором ключе.
Доступный в OS X v10.0 и позже.
-