Instance Methodswift 6.2.4Swift

storeBytes(of:toByteOffset:as:)

Stores the given value’s bytes into raw memory at the specified offset.

func storeBytes<T>(of value: T, toByteOffset offset: Int = 0, as type: T.Type)

Parameters

value

The value to store as raw bytes.

offset

The offset from this pointer, in bytes. offset must be nonnegative. The default is zero.

type

The type of value.

The type T to be stored must be a trivial type. The memory must also be uninitialized, initialized to T, or initialized to another trivial type that is layout compatible with T.

After calling storeBytes(of:toByteOffset:as:), 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 storeBytes(of:toByteOffset:as:) does not change the bound type of the memory.

If you need to store into memory a copy of a value of a type that isn’t trivial, you cannot use the storeBytes(of:toByteOffset:as:) method. Instead, you must know either initialize the memory or, if you know the memory was already bound to type, assign to 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:

let typedPointer = p.bindMemory(to: U.self, capacity: 1)
typedPointer.deinitialize(count: 1)
p.initializeMemory(as: T.self, repeating: newValue, count: 1)