Mac Developer Library

Developer

Foundation Framework Reference NSNameSpecifier Class Reference

Options
Deployment Target:

On This Page
Language:

NSNameSpecifier

Inheritance


Conforms To


Import Statement


Swift

import Foundation

Objective-C

@import Foundation;

Availability


Available in OS X v10.2 and later.

Specifies an object in a collection (or container) by name. For example, the following script specifies both an application and a window by name. In this script, the named window’s implicitly specified container is the Finder application’s list of open windows.

  • tell application "Finder" -- specifies an application by name
  • close window "Reports" -- specifies a window by name
  • end tell

This specifier works only for objects that have a name property. You don’t normally subclass NSNameSpecifier.

The evaluation of an instance of NSNameSpecifier follows these steps until the specified object is found:

  1. If the container implements a method whose selector matches the relevant valueIn<Key>WithName: pattern established by scripting key-value coding, the method is invoked. This method can potentially be very fast, and it may be relatively easy to implement.

  2. As is the case when evaluating any script object specifier, the container of the specified object is given a chance to evaluate the object specifier. If the container class implements the indicesOfObjectsByEvaluatingObjectSpecifier method, the method is invoked. This method can potentially be very fast, but it is relatively difficult to implement.

  3. An instance of NSWhoseSpecifier that specifies the first object whose relevant 'pnam' attribute matches the name is synthesized and evaluated. The instance of NSWhoseSpecifier must search through all of the keyed elements in the container, looking for a match. The search is potentially very slow.

  • Returns the name encapsulated by the receiver for the specified object in the container.

    Declaration

    Swift

    var name: String

    Objective-C

    @property(copy) NSString *name

    Import Statement

    Objective-C

    @import Foundation;

    Swift

    import Foundation

    Availability

    Available in OS X v10.2 and later.

    See Also

    – setName:

  • Sets the name encapsulated with the receiver for the specified object in the container.

    Declaration

    Swift

    var name: String

    Objective-C

    @property(copy) NSString *name

    Import Statement

    Objective-C

    @import Foundation;

    Swift

    import Foundation

    Availability

    Available in OS X v10.2 and later.

    See Also

    – name