indexesOfObjects(at:options:passingTest:)
Returns the indexes, from a given set of indexes, of objects in the array that pass a test in a given block for a given set of enumeration options.
Declaration
func indexesOfObjects(at s: IndexSet, options opts: NSEnumerationOptions = [], passingTest predicate: (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> IndexSetParameters
- s:
The indexes of the objects over which to enumerate.
- opts:
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).
- predicate:
The block to apply to elements in the array.
The block takes three arguments:
- obj
The element in the array.
- idx
The index of the element in the array.
- stop
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
NSEnumerationConcurrentenumeration option is specified, enumeration stops after all of the currently running blocks finish. Thestopargument is an out-only argument. You should only ever set this Boolean to True within the block.
The block returns a Boolean value that indicates whether
objpassed the test.
Return Value
The indexes whose corresponding values in the array pass the test specified by predicate. If no objects in the array pass the test, returns an empty index set.
Discussion
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.