Core Foundation   >   CFBag
CFBag
概観
CFBag とその派生した変更可能な型である CFMutableBag は、値が重複する可能性のある bag という非連続的な値のコレクションを管理します。CFBag は静的な bag を作成し、CFMutableBag は動的なバッグを作成します。
要素の順序が重要ではなく、値がコレクションに含まれているかどうかをテストする際のパフォーマンスが考慮される場合、配列の代わりにバッグやセットを使用して下さい。順序付けして配列にすると、メンバシップのテストはバッグやセットの場合よりも遅くなります。あなたのコレクションに重複した値を許可したい場合は、セットよりもバッグを使用してください。
静的なバッグオブジェクトは、CFBagCreate(_:_:_:_:) または CFBagCreateCopy(_:_:) 関数を使用して作成して下さい。これらの関数は、引数として渡す値を含むバッグを返します。(しかし、たいていの場合、バッグには NULL ポインタを入れることはできません。代わりに kCFNull 定数を使用できます)。値はコピーされず、バッグの作成時に提供された retain 呼び出し関数を使用して保持されます。同様に、値がバッグから削除されると、release 呼び出し関数を使用して解放されます。
CFBag はバッグの値を問い合わせる関数を提供します。CFBagGetCount(_:) はバッグ内の値の数を返し、CFBagContainsValue(_:_:) 関数は値がバッグ内にあるかどうかをチェックし、CFBagGetValues(_:_:) はバッグ内のすべての値を含む C 配列を返します。
CFBagApplyFunction(_:_:_:) 関数を使用すると、バッグ内のすべての値に関数を適用できます。
シンボル
バッグの作成
func CFBagCreate(CFAllocator!, UnsafeMutablePointer<UnsafeRawPointer?>!, CFIndex, UnsafePointer<CFBagCallBacks>!)
指定された値を含む不変のバッグを作成します。
func CFBagCreateCopy(CFAllocator!, CFBag!)
別のバッグの値を持つ不変のバッグを作成します。
バッグの検査
func CFBagContainsValue(CFBag!, UnsafeRawPointer!)
値がバッグ内にあるかどうかを報告します。
func CFBagGetCount(CFBag!)
現在バッグに入っている値の数を返します。
func CFBagGetCountOfValue(CFBag!, UnsafeRawPointer!)
値がバッグ内で発生する回数を返します。
func CFBagGetValue(CFBag!, UnsafeRawPointer!)
要求された値をバッグから返します。
func CFBagGetValueIfPresent(CFBag!, UnsafeRawPointer!, UnsafeMutablePointer<UnsafeRawPointer?>!)
値がバッグ内にあるかどうかを報告し、値が存在する場合は間接的にその値を返します。
func CFBagGetValues(CFBag!, UnsafeMutablePointer<UnsafeRawPointer?>!)
バッグからの値でバッファを埋めます。
バッグの内容に関数を適用
func CFBagApplyFunction(CFBag!, ((UnsafeRawPointer?, UnsafeMutableRawPointer?) -> Void)!, UnsafeMutableRawPointer!)
バッグ内の各値に対して関数を 1 度ずつ呼び出します。
CFBag 型 ID の取得
func CFBagGetTypeID()
CFBag の不透明型の型 ID を返します。
呼び出し関数
バッグ内のすべての値に適用できる呼び出し関数のプロトタイプ。
バッグ内の値の説明を取得するために使用される呼び出し関数のプロトタイプ。
バッグ内の 2 つの値が等しいかどうかを判断するために使用される呼び出し関数のプロトタイプ。
値のハッシュコードを計算するために呼び出される呼び出し関数のプロトタイプ。ハッシュコードは、値がコレクションからアクセス、追加、または削除されたときに使用されます。
値がバッグから削除される前に解放するために使用される呼び出し関数のプロトタイプ。
バッグに追加される値またはキーを保持するために使用される呼び出し関数のプロトタイプ。
データ型
この構造体には、CFBag オブジェクトの値の保持、解放、記述、および比較に使用される呼び出し関数が含まれています。
不変なバッグオブジェクトへの参照。
定数
Predefined Callback Structures
CFBag には、既に定義された呼び出し関数が用意されています。
以下も見よ
関連した文書