float *vertexBuffer = (float *)positionSource.data.bytes;
'bytes' is unavailable: use withUnsafeBytes instead
but I don't know how to use it
_ = positionSource?.data.withUnsafeBytes({ (<#UnsafePointer<ContentType>#>) -> ResultType in
})
withUnsafeBytes
is a generic method, the ContentType
is inferred
from the type of the closure. With
data.withUnsafeBytes { (vertexBuffer: UnsafePointer<Float>) in
// Use vertexBuffer ...
}
you'll get a UnsafePointer<Float>
pointing to the bytes in the data.
Note that this pointer must not be used outside of the closure.
You can also compute a result and pass it back from the closure to the caller. Example:
let result = data.withUnsafeBytes { (vertexBuffer: UnsafePointer<Float>) -> Float in
let result = // ... compute result ...
return result
}