An abstract class whose subclasses enumerate collections of objects, such as arrays and dictionaries.
SDKs
- iOS 2.0+
- macOS 10.0+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
Framework
- Foundation
Declaration
class NSEnumerator : NSObject
Overview
All creation methods are defined in the collection classes—such as NSArray
, NSSet
, and NSDictionary
—which provide special NSEnumerator
objects with which to enumerate their contents. For example, NSArray
has two methods that return an NSEnumerator
object: object
and reverse
. NSDictionary
also has two methods that return an NSEnumerator
object: key
and object
. These methods let you enumerate the contents of a dictionary by key or by value, respectively.
You send next
repeatedly to a newly created NSEnumerator
object to have it return the next object in the original collection. When the collection is exhausted, nil
is returned. You cannot “reset” an enumerator after it has exhausted its collection. To enumerate a collection again, you need a new enumerator.
The enumerator subclasses used by NSArray
, NSDictionary
, and NSSet
retain the collection during enumeration. When the enumeration is exhausted, the collection is released.
Note
In Objective-C, it is not safe to modify a mutable collection while enumerating through it. Some enumerators may currently allow enumeration of a collection that is modified, but this behavior is not guaranteed to be supported in the future.