A closure with an Unsafe
parameter that points to the contiguous storage for the array. If no such storage exists, it is created. If body
has a return value, that value is also used as the return value for the with
method. The argument is valid only for the duration of the closure’s execution.
あるクロージャでUnsafe
パラメータを持ち、それはその配列のための隣接ストレージを指し示します。そのようなストレージが存在しないならば、それは作成されます。body
が戻り値を持つならば、その値はまたwith
メソッドの戻り値としても使われます。引数は、ただクロージャの実行の間に対してのみ有効とされます。
withUnsafeMutableBytes(_:)
Availability
- iOS 8.0+
- iPadOS 8.0+
- macOS 10.10+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
- Xcode 8.0+
Technology
- Swift Standard Library Swift標準ライブラリ
Declaration 宣言
mutating func withUnsafeMutableBytes<R>(_ body: (UnsafeMutableRawBufferPointer
) throws -> R) rethrows -> R
Parameters パラメータ
body
Mutable Raw Buffer Pointer Unsafe Mutable Bytes(_:) Mutable Raw Buffer Pointer Unsafe Mutable Bytes(_:)
Return Value 戻り値
The return value, if any, of the body
closure parameter.
body
クロージャパラメータの戻り値、もしあれば。
Discussion 解説
The array’s Element
type must be a trivial type, which can be copied with just a bit-for-bit copy without any indirection or reference-counting operations. Generally, native Swift types that do not contain strong or weak references are trivial, as are imported C structs and enums.
この配列の持つElement
型は自明型でなければなりません、それは単にビット対ビットコピーでコピーされることが、何らかの間接参照または参照カウント操作なしで可能です。一般に、生粋のSwift型で強いまたは弱い参照を含まないものは自明です、インポートされたCのstructとenumのように。
The following example copies bytes from the byte
array into numbers
, an array of Int32
:
以下の例は、バイトをbyte
配列から、numbers
の配列Int32
へとコピーします:
Note 注意
This example shows the behavior on a little-endian platform. この例は、リトルエンディアンプラットホーム上での挙動を示します。
The pointer passed as an argument to body
is valid only for the lifetime of the closure. Do not escape it from the closure for later use.
引数としてbody
に渡されるポインタは、このクロージャの生涯に対してのみ有効です。それを後で使うためにクロージャから脱出させないでください。
Warning 警告
Do not rely on anything about the array that is the target of this method during execution of the body
closure; it might not appear to have its correct value. Instead, use only the Unsafe
argument to body
.
このメソッドのターゲットである配列についてbody
クロージャの実行の間に何であれ依存しないでください:それは、それの正しい値を持つように見えないでしょう。その代わりに、Unsafe
引数だけをbody
に使ってください。