Instance Method


Executes a given block using the objects in the array at the specified indexes.


func enumerateObjects(at s: IndexSet, options opts: NSEnumerationOptions = [], using block: (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Void)



The indexes of the objects over which to enumerate.


A bit mask that specifies the options for the enumeration (whether it should be performed concurrently and whether it should be performed in reverse order).


The block to apply to elements in the array.

The block takes three arguments:


The element in the array.


The index of the element in the array.


A reference to a Boolean value. The block can set the value to true to stop further enumeration of the array. If a block stops further enumeration, that block continues to run until it’s finished. When the NSEnumerationConcurrent enumeration option is specified, enumeration stops after all of the currently running blocks finish. The stop argument is an out-only argument. You should only ever set this Boolean to true within the block.


By default, the enumeration starts with the first object and continues serially through the array to the last element specified by indexSet. You can specify NSEnumerationConcurrent and/or NSEnumerationReverse as enumeration options to modify this behavior.

This method executes synchronously.

See Also

Sending Messages to Elements

func enumerateObjects((Any, Int, UnsafeMutablePointer<ObjCBool>) -> Void)

Executes a given closure using each object in the array, starting with the first object and continuing through the array to the last object.

func enumerateObjects(options: NSEnumerationOptions, using: (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Void)

Executes a given closure using each object in the array with the specified options.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software