NSFastEnumeration
継承:なし
従属:なし
フレームワーク:OS X 10.5 以降の Foundation。関連項目
概観
高速列挙プロトコル NSFastEnumeration は、Cocoa オブジェクトと組み合わせて使用される言語の構文と一緒に使用されるオブジェクトによって採用され、実装されなければなりません。
抽象クラス NSEnumerator は、一度にアイテムを1つずつ返すように nextObject を使用するコンビニエンスの実装を提供します。詳細については、高速列挙を参照してください。
タスク
列挙
- countByEnumeratingWithState:objects:count: 必須
その上に送信者が反復処理する必要があるオブジェクトの C 配列の参照を返し、配列内のオブジェクトの数を戻り値として返します。
宣言
<< SWIFT >>
func countByEnumeratingWithState(_ state: UnsafeMutablePointer<NSFastEnumerationState>,
objects buffer: AutoreleasingUnsafeMutablePointer<AnyObject?>,
count len: Int) -< Int
<< OBJECTIVE-C >>
- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state
objects:(id _Nonnull [])stackbuf
count:(NSUInteger)lenパラメーター
| state | 他の可能性に加えて、コレクションが変更されていないことを確認するために、列挙に使用されるコンテキスト情報。 |
| stackbuf | その上に送信者が反復処理するオブジェクトの C 配列。 |
| len | オブジェクトの最大数は stackbuf で戻されます。 |
戻り値
オブジェクトの数は stackbuf で戻されます。反復が終了すると 0 を返します。
議論
状態の構造体は、スタックのローカルメモリであることを想定しており、反復のためには、1つ以上の適切な状態の構造体に渡されたものを再度キャストすることができます。
利用可能
OS X v10.5 以降で利用可能。
データ型
NSFastEnumerationState
これは NSFastEnumeration プロトコルにおけるコンテキスト情報として使用される構造体を定義します。
宣言
<< SWIFT >>
struct NSFastEnumerationState {
var state: UInt
var itemsPtr: AutoreleasingUnsafeMutablePointer<AnyObject?>
var mutationsPtr: UnsafeMutablePointer<UInt>
var extra: (UInt, UInt, UInt, UInt, UInt)
init()
init(state state: UInt, itemsPtr itemsPtr: AutoreleasingUnsafeMutablePointer<AnyObject?>, mutationsPtr mutationsPtr: UnsafeMutablePointer<UInt>, extra extra: (UInt, UInt, UInt, UInt, UInt))
}
<< OBJECTIVE-C >>
typedef struct {
unsigned long state;
id *itemsPtr;
unsigned long *mutationsPtr;
unsigned long extra[5];
} NSFastEnumerationState;議論
詳細については、countByEnumeratingWithState:objects:count: を参照してください。
Import 文
<< OBJECTIVE-C >>
@import Foundation;
<< SWIFT >>
import Foundation
利用可能
OS X v10.5 以降で利用可能。
次:文書改定履歴