NSNameSpecifier
Указывает объект в наборе (или контейнер) по имени. Например, следующий сценарий указывает и приложение и окно по имени. В этом сценарии неявно указанный контейнер именованного окна является списком приложения Средства поиска открытых окон.
tell application "Finder" -- specifies an application by name
close window "Reports" -- specifies a window by name
end tell
Этот спецификатор работает только на объекты, имеющие свойство имени. Вы обычно не разделяете на подклассы NSNameSpecifier
.
Оценка экземпляра NSNameSpecifier
выполняет эти шаги, пока не найден указанный объект:
Если контейнер реализует метод, селектор которого соответствует соответствующее
valueIn<Key>WithName:
образец установил путем сценариев кодирования значения ключа, метод вызывается. Этот метод может потенциально быть очень быстрым, и может быть относительно просто реализовать.Как имеет место при оценке любого спецификатора объекта сценария, контейнеру указанного объекта дают шанс оценить объектный спецификатор. Если контейнерный класс реализует
indicesOfObjectsByEvaluatingObjectSpecifier
метод, метод вызывается. Этот метод может потенциально быть очень быстрым, но относительно трудно реализовать.Экземпляр
NSWhoseSpecifier
это указывает первый объект чей релевантный'pnam'
припишите соответствует, имя синтезировано и оценено. ЭкземплярNSWhoseSpecifier
должен перерыть все включенные элементы в контейнере, ища соответствие. Поиск является потенциально очень медленным.
Наследование
-
NSObject
-
NSScriptObjectSpecifier
-
NSNameSpecifier
-
NSObject
-
NSScriptObjectSpecifier
-
NSNameSpecifier
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.2 и позже.
-
init (containerClassDescription:containerSpecifier:key:name:) - initWithContainerClassDescription:containerSpecifier:key:name:
Определяемый инициализаторВызывает суперкласс
initWithContainerClassDescription:containerSpecifier:key:
метод и затем устанавливает переменную экземпляра имени вname
.Объявление
Swift
init(containerClassDescription
classDesc
: NSScriptClassDescription, containerSpecifiercontainer
: NSScriptObjectSpecifier, keyproperty
: String, namename
: String)Objective C
- (instancetype)initWithContainerClassDescription:(NSScriptClassDescription *)
classDesc
containerSpecifier:(NSScriptObjectSpecifier *)container
key:(NSString *)property
name:(NSString *)name
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает имя, инкапсулировавшее получателем для указанного объекта в контейнере.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.2 и позже.
См. также