Generic Function
withUnsafePointer(to:_:)
Invokes the given closure with a pointer to the given argument.
与えられたクロージャを、与えられた引数に対するポインタとともに発動します。
Technology
- Swift Standard Library
Swift標準ライブラリ
Declaration
宣言
func withUnsafePointer<T, Result>(to value: T, _ body: (UnsafePointer
<T>) throws -> Result) rethrows -> Result
Parameters
パラメータ
value
An instance to temporarily use via pointer.
ポインタ経由で一時的に使われることになるインスタンス。
body
A closure that takes a pointer to value
as its sole argument. If the closure has a return value, that value is also used as the return value of the withUnsafePointer(to:_:)
function. The pointer argument is valid only for the duration of the function’s execution. It is undefined behavior to try to mutate through the pointer argument by converting it to UnsafeMutablePointer
or any other mutable pointer type. If you need to mutate the argument through the pointer, use withUnsafeMutablePointer(to:_:)
instead.
value
へのポインタをそれの唯一の引数として取るクロージャ。クロージャが戻り値を持つならば、その値はまたwithUnsafePointer(to:_:)
関数の戻り値としても使われます。ポインタ引数は、関数の実行の継続期間に対してだけ有効です。ポインタ引数を通して変化させることを、それをUnsafeMutablePointer
または何か他の可変ポインタ型へ変換することによって、試みるのは未定義挙動です。あなたがポインタを通して引数を変化させる必要があるならば、代わりにwithUnsafeMutablePointer(to:_:)
を使ってください。
Return Value
戻り値
The return value, if any, of the body
closure.
body
クロージャの、もしあれば、戻り値。
Discussion
解説
The withUnsafePointer(to:_:)
function is useful for calling Objective-C APIs that take in parameters by const pointer.
withUnsafePointer(to:_:)
関数は、constポインタによってパラメータを取り入れるObjective-C APIを呼び出すのに役立ちます。
The pointer argument to body
is valid only during the execution of withUnsafePointer(to:_:)
. Do not store or return the pointer for later use.
body
へのポインタ引数は、withUnsafePointer(to:_:)
の実行の間のみ有効です。後で使うためにポインタを格納したり返したりしないでください。