Core Foundation   >     CFStringCreateCopy(_:_:)
関数
CFStringCreateCopy(_:_:)
文字列の変更不能なコピーを作成します。
宣言
パラメータ
alloc | 新しい文字列にメモリを割り当てるために使用するアロケータ。現在のデフォルトアロケータを使用するには、NULL または kCFAllocatorDefault を渡します。 |
theString | コピーすべき文字列。 |
戻り値
theString と全く同じ内容の変更不可の文字列。オブジェクトのコピーに問題があった場合は NULL を返します。所有権は 作成規則 に従います。
議論
生成されるオブジェクトは元のオブジェクトと同じ Unicode の内容ですが、常に変更不可です。異なる保管特性を持つこともあり、従って CFStringGetCStringPtr(_:_:) などの関数とは異なる応答をする可能性があります。また、指定されたアロケータと元のオブジェクトのアロケータが同じで、文字列がすでに変更不可の場合、この関数は真のコピーを作成せずに、保持カウントを単に増分します。しかし、結果的に得られるオブジェクトは真の変更不可のコピーですが、操作がずっと効率的でした。
この関数は、文字列が変更可能で、現在の値のスナップショットを取る必要がある状況で使用する必要があります。たとえば、文字列のコピーを、後で使用できるようにリストに現在の値を保管する関数に渡すことができます。