Generic Function

withUnsafePointer(to:_:)

Invokes the given closure with a pointer to the given argument. 与えられたクロージャを、与えられた引数に対するポインタとともに発動します。

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:_:)の実行の間のみ有効です。後で使うためにポインタを格納したり返したりしないでください。

See Also 参照

Memory Access メモリアクセス