NSEnumerator
従属:NSObject(protocol)、NSFastEnumeration
フレームワーク:OS X 10.5 以降の Foundation。関連項目
概観
NSEnumerator は、抽象クラスであり、配列や辞書のような他のオブジェクトのコレクションを、列挙するそのサブクラスのインスタンスです。
すべての作成メソッドは、NSArray、NSSet、NSDictionary のようなコレクションクラスに定義されており、その内容を列挙するために、特別な NSEnumerator オブジェクトを提供しています。例えば、NSArray には NSEnumerator オブジェクトを返す2つのメソッドがあり、objectEnumerator と reverseObjectEnumerator です。NSDictionary にも NSEnumerator オブジェクトを返す2つのメソッドがあり、keyEnumerator と objectEnumerator です。これらのメソッドを使用すると、それぞれ、キーまたは値によって辞書の内容を列挙できます。
それが元のコレクション内の次のオブジェクトを返すのを待って、新しく作成された NSEnumerator オブジェクトに繰り返し nextObject を送信して下さい。コレクションがなくなると、nil が返されます。そのコレクションを使い果たした後は、列挙子を"リセット"することはできません。もう一度コレクションを列挙するには、新しい列挙子を必要とします。
NSArray、NSDictionary、および NSSet で使用される列挙サブクラスは、列挙中にコレクションを保持しています。列挙が使い果たされると、コレクションは解除されます。
注意: それを列挙しながら変更可能なコレクションを変更することは安全ではありません。一部の列挙子は、変更されたコレクションの列挙を現在許可するかもしれませんが、この動作は将来サポートされる保証はありません。
タスク
列挙されたオブジェクトの取得
allObjects プロパティ
列挙されていないオブジェクトの配列。(読み取り専用)
宣言
<< SWIFT >>
var allObjects: [AnyObject] { get }
<< OBJECTIVE-C >>
@property(readonly, copy) NSArray < ObjectType > *allObjects
議論
この配列は、列挙された順に列挙子の残りのすべてのオブジェクトを含んでいます。これは、すでに前の nextObject メッセージで列挙されたオブジェクトは含まれていません。
このプロパティにアクセスすると、列挙子のコレクションを使い果たし、nextObject の後続の呼び出しは nil を返します。
利用可能
OS X v10.0 以降で利用可能。
- nextObject
列挙されつつあるコレクションから次のオブジェクトを返します。
宣言
<< SWIFT >>
func nextObject() -> AnyObject?
<< OBJECTIVE-C >>
- (ObjectType)nextObject
戻り値
列挙しつつあるコレクションから次のオブジェクトを、またはすべてのオブジェクトが列挙されてしまったときには nil を返します。
議論
このメソッドが、配列を使用して、どのように機能するかを次のコードで示します。
<< OBJECTIVE-C >>
- NSArray *anArray = // ... ;
- NSEnumerator *enumerator = [anArray objectEnumerator];
- id object;
- while ((object = [enumerator nextObject])) {
-         // do something with object...
- }
利用可能
OS X v10.0 以降で利用可能
次:文書改定履歴