Calls the given closure with a pointer to the underlying bytes of the array’s contiguous storage.
SDK
- Xcode 8.0+
 
Framework
- Swift Standard Library
 
Declaration
func withUnsafeBytes<R>(_ body: (UnsafeRawBufferPointer   ) throws -> R) rethrows -> R
Parameters
bodyA closure with an
Unsafeparameter that points to the contiguous storage for the array. If no such storage exists, it is created. IfRaw Buffer Pointer bodyhas a return value, that value is also used as the return value for thewithmethod. The argument is valid only for the duration of the closure’s execution.Unsafe Bytes(_:) 
Return Value
The return value, if any, of the body closure parameter.
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.
The following example copies the bytes of the numbers array into a buffer of UInt8:
var numbers = [1, 2, 3]
var byteBuffer: [UInt8] = []
numbers.withUnsafeBytes {
    byteBuffer.append(contentsOf: $0)
}
// byteBuffer == [1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, ...]