NSNameSpecifier
Указывает объект в наборе (или контейнер) по имени. Например, следующий сценарий указывает и приложение и окно по имени. В этом сценарии неявно указанный контейнер именованного окна является списком приложения Средства поиска открытых окон.
tell application "Finder" -- specifies an application by nameclose window "Reports" -- specifies a window by nameend 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(containerClassDescriptionclassDesc: NSScriptClassDescription, containerSpecifiercontainer: NSScriptObjectSpecifier, keyproperty: String, namename: String)Objective C
- (instancetype)initWithContainerClassDescription:(NSScriptClassDescription *)classDesccontainerSpecifier:(NSScriptObjectSpecifier *)containerkey:(NSString *)propertyname:(NSString *)nameОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
-
Возвращает имя, инкапсулировавшее получателем для указанного объекта в контейнере.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
См. также
