The value to store as raw bytes. 生のメモリとして格納されることになる値。
storeBytes(of:toByteOffset:as:)
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 宣言
func storeBytes<T>(of value: T, toByteOffset offset: Int
= 0, as type: T.Type)
Parameters パラメータ
value
offset
The offset from this pointer, in bytes.
offset
must be nonnegative. The default is zero. このポインタからのオフセット、バイトで。offset
は、非負でなければなりません。初期状態はゼロです。type
The type of
value
.value
の型。
Discussion 解説
The type T
to be stored must be a trivial type. The memory at this pointer plus offset
must be properly aligned for accessing T
. The memory must also be uninitialized, initialized to T
, or initialized to another trivial type that is layout compatible with T
.
格納されることになる型T
は、自明型でなければなりません。offset
を加えたこのポインタでのメモリは、T
にアクセスするために適切にアラインされる必要があります。メモリはまた、未初期化状態にされる、T
に初期化される、または別の自明型でT
とレイアウト互換なものに初期化される必要があります。
After calling store
, the memory is initialized to the raw bytes of value
. If the memory is bound to a type U
that is layout compatible with T
, then it contains a value of type U
. Calling store
does not change the bound type of the memory.
store
を呼び出した後、メモリはvalue
の生のバイトに初期化されます。メモリが型U
でT
とレイアウト互換であるものに束縛されるならば、そのときそれは型U
の値を含みます。store
を呼び出すことは、そのメモリの束縛される型を変更しません。
Note 注意
A trivial type 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 or other forms of indirection are trivial, as are imported C structs and enums. 自明な型は、単にビット対ビットコピーでコピーされることが、何らかの間接的または参照カウント操作なしで可能です。一般に、生粋のSwift型で強いまたは弱い参照または他形式の間接参照を含まないものは自明です、インポートされたCのstructとenumのように。
If you need to store a copy of a nontrivial value into memory, or to store a value into memory that contains a nontrivial value, you cannot use the store
method. Instead, you must know the type of value previously in memory and initialize or assign the memory. For example, to replace a value stored in a raw pointer p
, where U
is the current type and T
is the new type, use a typed pointer to access and deinitialize the current value before initializing the memory with a new value.
あなたが非自明の値のコピーをメモリに格納する、またはある値を非自明の値を含むメモリに格納する必要がある場合、あなたはstore
メソッドを使うことはできません。代わりに、あなたは前もってメモリ中の値の型を知っていて、メモリを初期化またはアサインする必要があります。例えば、生のポインタp
に格納される値を置き換えるには、そこでU
は現在の型でT
は新しい型です、型付ポインタを使ってアクセスして現在の値をデイニシャライズしてください、新しい値でメモリを初期化する前にです。