Core Foundation   >   CFAllocatorSetDefault(_:)
関数
CFAllocatorSetDefault(_:)
与えられたアロケータを現在のスレッドのデフォルトとして設定します。
宣言
パラメータ
allocator | 現在のスレッドのデフォルトとして設定すべきアロケータ。 |
議論
CFAllocatorSetDefault 関数は、NULL がアロケータ引数として指定されるたびに、現在のスレッドで使用されるアロケータを設定します。一般に、ほとんどの割り当て (allocation) はデフォルトのアロケータを使用します。このため、デフォルトのアロケータは、任意のメモリ割り当て要求に対処する用意をしなければなりません。さらに、要求のサイズと数はリリース間で変更できます。
デフォルトのアロケータのさらなる特徴は、他のアロケータがそれをデフォルトとして置き換えたとしても、決して解放できないことです。デフォルトのアロケータを解放することは実際的ではない (アロケータを参照するどこかで作成されたキャッシュが存在する可能性があるため) ですが、一般的にそれを保持するのがより安全で効率的です。
コンテキスト内でカスタムアロケータを使用したい場合、最適な方法は、デフォルトとして設定するのではなく、作成関数の最初のパラメータで指定することです。一般に、デフォルトのアロケータを設定はするのお勧めしません。それでもアロケータをデフォルトとして設定する場合は、アプリケーションの寿命中に行うか、入れ子にされた方法で行って下さい (つまり、コンテキストを終了する前に以前のアロケータを復元します)。後者のアプローチは、デフォルトのアロケータを設定したいプラグインやライブラリにとって、より適切かもしれません。